UnityAPI学习之Transform组件基本使用

目录

Transform组件

访问与获取

Transform的位置和旋转信息

Transform局部坐标和旋转信息的获取

Transform的缩放与正方向

缩放(Scale)

正方向

Transform相关的查找方法

销毁游戏物体


Transform组件

访问与获取

现在创建一个容器放置GrisGO物体的、Transform组件并输出其名字

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class NO5_Transform : MonoBehaviour
{public GameObject GrisGO;// Start is called before the first frame updatevoid Start(){Debug.Log(GrisGO.transform);Transform GrisTrans = GrisGO.transform;Debug.Log("GrisGO所挂载的物体的transform组件的名字为:" + GrisTrans);Debug.Log("GrisGO所挂载的游戏物体引用为" + GrisTrans.gameObject);Debug.Log("GrisGO下的子物体(Transform)个数为" + GrisTrans.childCount);}// Update is called once per framevoid Update(){}
}

Transform的位置和旋转信息

示例1:获取GrisGO的位置信息和旋转信息

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class NO5_Transform : MonoBehaviour
{public GameObject GrisGO;// Start is called before the first frame updatevoid Start(){//Debug.Log(GrisGO.transform);Transform GrisTrans = GrisGO.transform;/*Debug.Log("GrisGO所挂载的物体的transform组件的名字为:" + GrisTrans);Debug.Log("GrisGO所挂载的游戏物体引用为" + GrisTrans.gameObject);Debug.Log("GrisGO下的子物体(Transform)个数为" + GrisTrans.childCount);*/Debug.Log("GrisGO世界空间的坐标位置为" + GrisTrans.position);Debug.Log("GrisGO以四元数形式表示的旋转是" + GrisTrans.rotation);}// Update is called once per framevoid Update(){}
}

示例2:

在以上实例中,获取的旋转信息是以四元数的形式表示出来(如在rotation属性中,x=1.58,但实际输出的四元数为0.01379),现在要将rotation属性以其原本的数值(欧拉角/度)形式展现出来

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class NO5_Transform : MonoBehaviour
{public GameObject GrisGO;// Start is called before the first frame updatevoid Start(){//Debug.Log(GrisGO.transform);Transform GrisTrans = GrisGO.transform;/*Debug.Log("GrisGO所挂载的物体的transform组件的名字为:" + GrisTrans);Debug.Log("GrisGO所挂载的游戏物体引用为" + GrisTrans.gameObject);Debug.Log("GrisGO下的子物体(Transform)个数为" + GrisTrans.childCount);*/Debug.Log("GrisGO世界空间的坐标位置为" + GrisTrans.position);Debug.Log("GrisGO以四元数形式表示的旋转是" + GrisTrans.rotation);Debug.Log("GrisGO以欧拉角/度的形式表示旋转结果为" + GrisTrans.eulerAngles);}// Update is called once per framevoid Update(){}
}

Transform局部坐标和旋转信息的获取

局部坐标:子级相对于父级的位置信息

示例:输出GrisGO的局部坐标和旋转欧拉角

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class NO5_Transform : MonoBehaviour
{public GameObject GrisGO;// Start is called before the first frame updatevoid Start(){//Debug.Log(GrisGO.transform);Transform GrisTrans = GrisGO.transform;/*Debug.Log("GrisGO所挂载的物体的transform组件的名字为:" + GrisTrans);Debug.Log("GrisGO所挂载的游戏物体引用为" + GrisTrans.gameObject);Debug.Log("GrisGO下的子物体(Transform)个数为" + GrisTrans.childCount);*/Debug.Log("GrisGO世界空间的坐标位置为" + GrisTrans.position);Debug.Log("GrisGO局部坐标为" + GrisTrans.localPosition);Debug.Log("GrisGO以四元数形式表示的旋转是" + GrisTrans.rotation);Debug.Log("GrisGO以欧拉角/度的形式表示旋转结果为" + GrisTrans.eulerAngles);Debug.Log("GrisGO的局部欧拉角/度的形式表示旋转结果为" + GrisTrans.localEulerAngles);}// Update is called once per framevoid Update(){}
}

Transform的缩放与正方向

缩放(Scale)

对于Scale属性,只有局部缩放LocalScale

示例:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class NO5_Transform : MonoBehaviour
{public GameObject GrisGO;// Start is called before the first frame updatevoid Start(){//Debug.Log(GrisGO.transform);Transform GrisTrans = GrisGO.transform;/*Debug.Log("GrisGO所挂载的物体的transform组件的名字为:" + GrisTrans);Debug.Log("GrisGO所挂载的游戏物体引用为" + GrisTrans.gameObject);Debug.Log("GrisGO下的子物体(Transform)个数为" + GrisTrans.childCount);*//*Debug.Log("GrisGO世界空间的坐标位置为" + GrisTrans.position);Debug.Log("GrisGO局部坐标为" + GrisTrans.localPosition);Debug.Log("GrisGO以四元数形式表示的旋转是" + GrisTrans.rotation);Debug.Log("GrisGO以欧拉角/度的形式表示旋转结果为" + GrisTrans.eulerAngles);Debug.Log("GrisGO的局部欧拉角/度的形式表示旋转结果为" + GrisTrans.localEulerAngles);*/Debug.Log("GrisGO的局部缩放为" + GrisTrans.localScale);}// Update is called once per framevoid Update(){}
}

正方向

正方向即关于xyz轴所指的方向,其中分为有相对于世界空间的正方向和本地正方向(若无父级,则本地正方向与世界正方向相同),根据实际开发中的需求不同,调整相应的世界空间或者本地正方向的数值大小

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class NO5_Transform : MonoBehaviour
{public GameObject GrisGO;// Start is called before the first frame updatevoid Start(){//Debug.Log(GrisGO.transform);Transform GrisTrans = GrisGO.transform;/*Debug.Log("GrisGO所挂载的物体的transform组件的名字为:" + GrisTrans);Debug.Log("GrisGO所挂载的游戏物体引用为" + GrisTrans.gameObject);Debug.Log("GrisGO下的子物体(Transform)个数为" + GrisTrans.childCount);*//*Debug.Log("GrisGO世界空间的坐标位置为" + GrisTrans.position);Debug.Log("GrisGO局部坐标为" + GrisTrans.localPosition);Debug.Log("GrisGO以四元数形式表示的旋转是" + GrisTrans.rotation);Debug.Log("GrisGO以欧拉角/度的形式表示旋转结果为" + GrisTrans.eulerAngles);Debug.Log("GrisGO的局部欧拉角/度的形式表示旋转结果为" + GrisTrans.localEulerAngles);*////Debug.Log("GrisGO的局部缩放为" + GrisTrans.localScale);Debug.Log("GrisGO关于x轴的正方向为" + GrisTrans.right);Debug.Log("GrisGO关于y轴的正方向为" + GrisTrans.up);Debug.Log("GrisGO关于z轴的正方向为" + GrisTrans.forward);}// Update is called once per framevoid Update(){}
}

Transform相关的查找方法

示例:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class NO5_Transform : MonoBehaviour
{public GameObject GrisGO;// Start is called before the first frame updatevoid Start(){//Debug.Log(GrisGO.transform);Transform GrisTrans = GrisGO.transform;/*Debug.Log("GrisGO所挂载的物体的transform组件的名字为:" + GrisTrans);Debug.Log("GrisGO所挂载的游戏物体引用为" + GrisTrans.gameObject);Debug.Log("GrisGO下的子物体(Transform)个数为" + GrisTrans.childCount);*//*Debug.Log("GrisGO世界空间的坐标位置为" + GrisTrans.position);Debug.Log("GrisGO局部坐标为" + GrisTrans.localPosition);Debug.Log("GrisGO以四元数形式表示的旋转是" + GrisTrans.rotation);Debug.Log("GrisGO以欧拉角/度的形式表示旋转结果为" + GrisTrans.eulerAngles);Debug.Log("GrisGO的局部欧拉角/度的形式表示旋转结果为" + GrisTrans.localEulerAngles);*////Debug.Log("GrisGO的局部缩放为" + GrisTrans.localScale);Debug.Log("GrisGO关于x轴的正方向为" + GrisTrans.right);Debug.Log("GrisGO关于y轴的正方向为" + GrisTrans.up);Debug.Log("GrisGO关于z轴的正方向为" + GrisTrans.forward);//查找Debug.Log("当前脚本挂载的游戏对象下的叫Gris的子对象身上的Transform组件是" + transform.Find("Gris"));//索引Debug.Log("当前脚本挂载的游戏对象下的叫Gris的子对象身上的Transform组件是" + transform.GetChild(0));Debug.Log("Gris当前在此父对象同级里所在的索引位置" + GrisTrans.GetSiblingIndex());}// Update is called once per framevoid Update(){}
}

销毁游戏物体

Transform.Destroy(GrisGO);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/20976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

API接口通道如何设置?

API接口通道如何设置? 如果分站点的AI接口使用openai(站点后台->系统配置->AI参数配置->AI接口),则需要在超管后台配置接口通道,其他方式则无需在超管后台配置接口通道 1、进入超管后台选择接口通道&#x…

一键批量转换,高效轻松管理:解锁不同格式图片统一处理新体验,让图片管理更高效

在信息爆炸的时代,图片管理成为了一个不容忽视的问题。我们时常面临各种格式的图片文件,不同的格式不仅增加了管理的难度,还可能导致兼容性问题。如何快速高效地管理不同格式的图片,成为了现代人面临的一大挑战。现在,…

网上帮别人开网店卖货的骗局!

小红书帮别人开店卖货的骗局主要涉及到一些不法分子利用小红书平台的流量和用户信任度,通过虚假宣传、承诺高额利润等手段,诱骗用户开店并**所谓的“赚钱机会”。 这些骗局往往以“轻松创业、快速致富”为诱饵,吸引那些对创业充满热情但缺乏经…

Redis常用命令——List篇

提到List,我们第一时间想到的就是链表。但是在Redis中,List更像是一种双端队列,例如C中的deque。它可以快速高效的对头部和尾部进行插入和删除操作。本片文章主要对List列表的相关命令进行详解,希望本篇文章会对你有所帮助。 文章…

MedSegDiff-V2: Diffusion-Based Medical Image Segmentation with Transformer 论文总结

标题:MedSegDiff-V2: Diffusion-Based(基于扩散模型)Medical Image Segmentation(医学图像分割)with Transformer 论文(AAAI):https://ojs.aaai.org/index.php/AAAI/article/view/28…

【避坑全攻略】如何让私人的LLM拥有一个嗓子——ChatTTS

OpenAI 发布 GPT4o 之后,使得越来越多的人都开始幻想属于自己的AI“伴侣”,这最让人惊艳的就是他们出色的TTS技术。而在此之前,主流的开源TTS有 XTTS 2 和 Bark。而近日,一个名为 ChatTTS 文本转语音项目爆火出圈,引来…

.gitignore 文件

一.什么是 .gitignore 文件 在任何当前工作的 Git 仓库中,每个文件都是这样的: 追踪的(tracked)- 这些是 Git 所知道的所有文件或目录。这些是新添加(用 git add 添加)和提交(用 git commit 提…

汽美汽修店管理系统会员小程序的作用是什么

汽车后市场汽美汽修赛道同样存在着大量商家,连锁品牌店或个人小店等,门店扎堆且区域覆盖面积广,当然每天车来车往也有不少生意。 随着线上化程度加深和商家不断拓展市场的需要,传统运营模式可能难以满足现状,尤其是年…

Element - UI <el-table-column>多选数据提交后禁用已提交的多选框

1. 通过 selection-change"selectionChange" 将已选择的数据存入selectData数组中 <el-table :data"tableData" class"my-5" selection-change"selectionChange" > //多选框已选择的数据 const selectData ref([]); const sel…

HALCON-从入门到入门-图像格式的互相转换

1.废话 上次说到了图片的读取和写入到本地&#xff0c;这次说一下图片的格式相关。 位图和矢量图 photoshop处理出来的图片肯定叫做图片&#xff0c;那么coreDraw处理出来的图片是不是也叫图片。 之间就有区分&#xff0c;一种叫做位图&#xff0c;一种叫做矢量图 位图和矢…

AI大模型探索之路-实战篇13: 从对话到报告:打造能记录和分析的Agent智能数据分析平台

系列篇章&#x1f4a5; AI大模型探索之路-实战篇4&#xff1a;深入DB-GPT数据应用开发框架调研 AI大模型探索之路-实战篇5&#xff1a;探索Open Interpreter开放代码解释器调研 AI大模型探索之路-实战篇6&#xff1a;掌握Function Calling的详细流程 AI大模型探索之路-实战篇7…

echarts 图表不显示的问题

是这样的&#xff0c;点击详情&#xff0c;再点击统计&#xff0c;切换的时候就不会显示echarts图表&#xff0c;刚开始使用的是next Tick&#xff0c;没有使用定时器&#xff0c;后来加上了定时器就实现了如下所示&#xff1a; 代码是如下 const chartContainer ref(null); …

【Text2SQL 论文】DBCopilot:将 NL 查询扩展到大规模数据库

论文&#xff1a;DBCopilot: Scaling Natural Language Querying to Massive Databases ⭐⭐⭐⭐ Code: DBCopilot | GitHub 一、论文速读 论文认为目前的 Text2SQL 研究大多只关注具有少量 table 的单个数据库上的查询&#xff0c;但在面对大规模数据库和数据仓库的查询时时却…

UML静态图-对象图

概述 静态图包含类图、对象图和包图的主要目的是在系统详细设计阶段&#xff0c;帮助系统设计人员以一种可视化的方式来理解系统的内部结构和代码结构&#xff0c;包括类的细节、类的属性和操作、类的依赖关系和调用关系、类的包和包的依赖关系。 对象图与类图之间的关系&…

Day46 动态规划part06

完全背包问题 完全背包和01背包问题唯一不同的地方就是&#xff0c;每种物品有无限件。先遍历物品还是先遍历背包以及遍历顺序 根据递推公式可知&#xff1a;每一个dp需要根据上方和左方的数据推出&#xff0c;只要保证数据左上方数据是递推出来的这种两个for循环的顺序就是可…

【python学习】Anaconda的介绍、下载及conda和pip换源方式(切换到国内镜像源)

什么是Anaconda Anaconda 是一个专为数据科学和机器学习预装了多种库的Python发行版。 提供了包管理与环境管理的功能解决了多个版本python并存的问题解决了第三方包安装问题 如何下载Anaconda 官网地址&#xff1a;https://www.anaconda.com/ 点击右上角的 Free Download …

C语言王国——选择与循环(1)

目录 一、引言 二、选择结构 1&#xff0c;if语句 1.1&#xff0c;if...else...语句 1.2&#xff0c;多分支语句 1.3悬空else的问题 2&#xff0c;switch语句 2.1&#xff0c;switch 2.2&#xff0c;break 2.3&#xff0c;default 一、引言 写了几个C语言代码我发现C语…

华为坤灵交换机S300, S500, S210,S220, S200, S310 如何WEB抓包

通过S系列交换机配置端口镜像实现抓包 1、应用场景 端口镜像是指将经过指定端口(源端口或者镜像端口)的报文复制一份到另一个指定端口(目的端口或者观察端口)。在网络运营与维护的过程中&#xff0c;为了便于业务监测和故障定位&#xff0c;网络管理员时常要获取设备上的业务报…

队列——一种操作受限的线性表

队列 队列&#xff08;Queue&#xff09;简称队&#xff0c;也是一种操作受限的线性表&#xff0c;只允许在表的一端进行插入&#xff0c;而在表的另一端进行删除。向队列中插入元素称为入队或进队&#xff0c;删除元素称为出队或离队。队列中的元素是先进先出&#xff08;Fir…

MySQL学习——选项文件的使用

MySQL 的许多程序都可以从选项文件&#xff08;有时也被称为配置文件&#xff09;中读取启动选项。选项文件提供了一种方便的方式来指定常用的选项&#xff0c;这样你就不必每次运行程序时都在命令行上输入这些选项。 要确定一个程序是否读取选项文件&#xff0c;你可以使用 -…