Unity常用类—Transform类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity常用类—Transform类相关的知识,希望对你有一定的参考价值。

参考技术A childCount: 父物体所拥有的子元素的数量

eulerAngles: 以欧拉角为单位旋转的角度,x,y,z代表旋转的角度

forward:  沿着z轴进行移动,受旋转的影响,当旋转后,会一直朝着旋转后的z轴移动

right : 沿着x轴进行移动,受旋转的影响,当旋转后,会一直朝着旋转后的x轴移动

up: 沿着y轴进行移动,受旋转的影响,当旋转后,会一直朝着旋转后的y轴移动

hasChanged:   当物体Transform发生旋转,位置,缩放会发生改变,返回布尔类型,默认为true

hierarchyCount: 代表在当前GameObject所处的相互关联的树状结构中,存在的层次数目。

hierarchyCapacity: 代表当前所在的树的层次容量。就是这棵树最大可以容纳的节点数目,从整个树中的任意一个节点访问此属性,所获取的层次容量都是相同的这个参数是自动增长的,即当GameObject发生层次变动时,如果当前树的容量不足,会自动扩容。

可以推测出:树中所有节点所查询的结果实际来自最顶层节点的属性,而当层次所发生变动时,Unity内部只需要修改顶层节点的这个属性即可。

需要注意的是,当频繁变化hierarchyCapacity时,是需要带来额外的内存消耗和性能消耗的,这与List类的内存扩容是一个道理。因此,应该为频繁增长的树的根节点在一开始就设置一个比较大的容量。

localEulerAngles: 以欧拉角相对于父物体进行旋转,也就是相对自身的旋转,x,y,z为旋转的角度

eulerAngles:  以欧拉角为单位旋转的角度,x,y,z代表旋转的角度

localPosition: 相对父物体位置,本地坐标系的位置,不受父物体的位置影响

rotation:   在世界坐标系中基于四元数的旋转

localRotation: 相对父物体旋转,本地坐标系的旋转,不受父物体旋转的影响

localScale:  相对父物体缩放,也就是本地的缩放,不受父物体缩放的影响

localToWorldMatrix: 将点从局部空间转换为世界空间的矩阵

worldToLocalMatrix: 将一个点从世界空间转换为局部空间的矩阵

lossyScale:  相对于父物体的缩放,受父物体缩放的影响

root: 找到最上级物体的Transform,如果没有父物体则返回自身,永远不会为null

DetachChildren: 分离当前父物体下面的子物体,同时没有破坏子物体的层级结构

GetChild: 当前物体根据索引获取到子物体的Transform,但是索引没有找到,或者超出界限就会报错

SetSiblingIndex: 设置同一层级游戏物体的索引,可以通过这个索引可以改变当前游戏物体在同一层级游戏物体中的位置,索引越大越靠后,索引越小越靠前

GetSiblingIndex: 可以得到当前物体在同一层级游戏物体的中的索引

SetAsFirstSibling: transform调用无效,一般在UI中使用,当调用该方法时,将当前游戏物体设置到同一层游戏物体的第一层

SetAsLastSibling: transform调用无效,一般在UI中使用,当调用该方法时,将当前游戏物体设置到同一层游戏物体的最后一层

InverseTransformDirection: 将世界空间的方向转换为本地坐标的方向,与Transform.TransformDirection相反。表示的是方向而不是位置,不受比例影响,返回的向量具有长度

TransformDirection: 将本地空间的方向转换为世界坐标的方向,表示的是方向而不是位置,不受比例影响

InverseTransformPoint: 将位置从世界空间转换为本地空间,返回的位置受比例的影响,表示的是位置而不是方向

TransformPoint:   将位置从本地空间转换为世界空间,返回的位置受比例的影响,表示的是位置而不是方向

InverseTransformVector :  将一个向量从世界空间转换为本地空间

IsChildOf: 返回一个布尔类型,是否为当前游戏物体的父物体

RotateAround: 由当前物体围绕目标物体进行旋转

SetPositionAndRotation: 设置当前物体的位置和旋转相对于世界空间,旋转用的是四元数

unity基础(GameObject transform)

参考技术A GameObject是unity所有实体的基类

常用的函数

1.GameObject.Find(“Cube”);

可以查找并获取一个指定的name为Cube的对象。然后进行其他操作。

2.GameObject.FindWithTag(“_cube");

和Find函数相似,不同之处在于该方法是通过标签(tag)值查找

3.GameObject.SetActive(true);

激活/停用此游戏对象(如下图1.1所示打钩(true)的时候该游戏对象就属于激活状态,去掉打钩(false)就属于停用状态即游戏对象也就不会显示在你的视野内)

4.GameObject.GetComponent

获取组件:如果这个游戏对象附件了一个type名称类型的组件,则返回该组件,否则为空。

hinge=gameObject.GetComponent("HingeJoint")asHingeJoint;

hinge.useSpring=false;

是一个每个对象都用的组件,用于储存并操控物体的位置、旋转和缩放。(每一个Transform可以有一个父级,允许你分层次应用位置、旋转和缩放。可以在Hierarchy面板查看层次关系。他们也支持计数器(enumerator),因此你可以使用循环遍历子对象。)

1.transform.Find

是通过名字查找到子对象并返回他。

2.Transform.Translate  平移

向莫一个方向进行移动多少的距离

移动变换由x沿着x轴,y沿着y轴,z沿着z轴

transform.Translate(0,0, Time.deltaTime);

transform.Translate(0, Time.deltaTime,0, Space.World);

3.Transform.parent

通过该方法可以找到父对象,然后可以进行对父对象操作(如改变父对象名字)

_child.gameObject.transform.parent.gameObject.name = "ParentBox";

4.Transform.root

返回最根部父类进行操作

string name=_child.gameObject.transform.root.gameObject.name;

Debug.Log(name);

5.Transform.position

在世界坐标系中transform的·位置

6.Transform.rotation

Unity以四元数储存旋转角度。要旋转一个对象使用Transform.Rotate,使用Transform.eulerAngles以欧拉角设置旋转角度。

7.Transform.localScale

相对于父级对象进行缩放(局部缩放)

transform.localScale = new Vector3(0.5f,0.5f, 0.5f);

(为=时是对该物体进行缩小到后面参数的大小,+=时是对该物体进行放大)

8.Transform.forward

向前在世界空间坐标,变换的蓝色轴。也就是z轴。
在世界空间坐标,变换的蓝色轴。也就是z轴。

以上是关于Unity常用类—Transform类的主要内容,如果未能解决你的问题,请参考以下文章

unity3d常用的实时运行类都有哪些

unity基础(GameObject transform)

Unity常用类—Time类

unity脚本开发:一些重要的类和类间的关系图

使用Photon引擎进行unity网络游戏开发——Photon常用类介绍

《Unity_API解析》 第十二章 Transform类