【Unity】入门学习笔记180524——API(16)——Transform类——实例属性

Transform类

Transform类继承自Component类,并实现了IEnumberable接口

Transform是GameObject必须拥有的一个组件,用来管理所在GameObject对象的坐标位置、旋转角度和大小缩放

由于实现了IEnumberable接口,可以使用foreach()方法快速遍历子物体transform结构


A、Transform类实例属性

1、eulerAngles

public Vector3 eulerAngles{ get; set; }

此属性用于返回或设置GameObject对象的欧拉角

#在Unity程序中使用四元数Quaternion来存储和表示GameObject的旋转角度,无论是在Inspector面板中对Rotation设置了怎样的数值,还是在脚本中对transfrom.eulerAngles赋予了怎样的数值,程序都会在运行时把他们转换成Quaternion类型再计算

#只能对transform.eulerAngles进行整体赋值,不能对单独分量进行赋值

#transform.eulerAngles.x返回值的范围为[0,90]和[270,360);

transform.eulerAngles.y和transform.eulerAngles.z返回值的范围为[0,360)

#对transform.eulerAngles进行赋值或获取transform.eulerAngles的值都是相对世界坐标系而言的,若要相对transform的父物体进行角度的变换则需要使用属性localEulerAngless来设置

#设置的旋转顺序为先沿着Z轴旋转,后x轴、y轴,不同的旋转执行顺序,物体的最终状态是不同的


2、forward

public Vector3 forward{ get; set; }

用于返回或设置transform自身坐标系中z轴方向的单位向量对应的世界坐标系中的单位向量

transform.forward即为transform.TransformDirection (new Vector3 (0.0f,0.0f,1.0f) )的简化形式

其他对应x:transform.right

y:transform.up


3、hasChanged

public bool hasChanged{ get; set; }

此属性用于判断GameObject对象从上次将此属性设置为false以来,其transform组件的属性是否被修改过,包括position、rotation、scale等属性,修改后的值与修改前相同,仍然返回true


4、localPosition

public Vector3 localPosition{ get; set; }

此属性用于设置或返回GameObject对象在局部坐标系中的位置,若无父级对象则和属性Transform.position返回值相同

transform.localPosition的值受父级对象lossyScale的影响


5、localToWorldMatrix

public Matrix4x4 localToWorldMatrix { get; }

此属性用于返回从transform局部坐标系向世界坐标系转换的Matrix4x4矩阵

一般情况下可以用方法TransformPoint( position: vector3 )来实现Vector3实例从transform局部坐标系向世界坐标系的转换


6、parent

public Transform parent {get; set; }

此属性用于返回父物体的Transform实例,可通过transform.parent.parent返回父物体的父物体

以及通过transform.root返回transform的最顶层的父物体


7、worldToLocalMatrix

public Matrix4x4 worldToLocalMatrix{ get; }

此属性用于返回物体从世界坐标系向transform自身坐标系转换的Matrix4x4矩阵

一般情况下可以用方法InverseTransformPoint( position: Vector3 )来实现Vector3实例从世界坐标系向transform自身坐标系转换。





猜你喜欢

转载自blog.csdn.net/dylan_day/article/details/80429195
今日推荐