[Unity2D]Transform组件


    在Unity里面Transform组件是有两个重要的作用,一个是表示在坐标系的位置,旋转和缩放,另外一个是GameObject的父节点是通过Transform组件来维持,Transform类是继承了IEnumerable接口,它也是一个集合的类型,可以通过foreach语句来遍历它的子对象。

    先来看看他的成员变量和函数:

一、成员变量

position:在世界空间坐标transform的位置。

localPosition:相对于父级的变换的位置。如果该变换没有父级,那么等同于Transform.position。

eulerAngles:世界坐标系中的旋转(欧拉角)。

localEulerAngles:相对于父级的变换旋转角度。

right:世界坐标系中的右方向。(世界空间坐标变换的红色轴。也就是x轴。)

up:世界坐标系中的上方向。(在世界空间坐标变换的绿色轴。也就是y轴。)

forward:世界坐标系中的前方向。(在世界空间坐标变换的蓝色轴。也就是z轴。)

rotation:世界坐标系中的旋转(四元数)。

localRotation:相对于父级的变换旋转角度。

localScale:相对于父级的缩放比例。

parent:父对象Transform组件。

worldToLocalMatrix:矩阵变换的点从世界坐标转为自身坐标(只读)。

localToWorldMatrix:矩阵变换的点从自身坐标转为世界坐标(只读)。

root:对象层级关系中的根对象的Transform组件。

childCount:子对象数量。

lossyScale:全局缩放比例(只读)。

二、成员函数

Translate:向某方向移动物体多少距离。

Rotate:按照指定欧拉角旋转。

RotateAround:按照多少度在世界坐标的某位置轴旋转物体。

LookAt:旋转物体使z轴指向目标物体。

TransformDirection:将一个方向从局部坐标变换到世界坐标方向。

InverseTransformDirection:将一个方向从世界坐标变换到局部坐标方向。

TransformPoint、InverseTransformPoint。

Description:与所有子物体解除父子关系。

Find:通过名字查找子物体并返回它。如果没有查找到子物体名字,将返回null。如果名字包含“/”字符它将向路径一样穿越层次。

    Transform组件最常见的用法是作为坐标系的位置来使用,如下代码所示:

   // 向前移动
    transform.Translate(Vector3.forward * Time.deltaTime * 3)
    // 绕自身坐标Y轴旋转
    transform.Rotate(Vector3.up * Time.deltaTime * 30)
    // 绕世界坐标Y轴旋转
    transform.RotateAround(Vector3.zero, Vector3.up, Time.deltaTime * 30)

    作为父节点来使用通常会用于遍历获取自对象,如:

    void Start()
    {
        //Loop through children
        foreach (Transform child in transform)
        {
            //If the child is not a triggerer
            if (child.name != "SpawnTriggerer" && child.name != "ResetTriggerer")
            {
                //Add it to the elements list, and deactivate it
                elements.Add(child.gameObject);
                EnableDisable(child.gameObject, false);
            }
        }
    }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM