[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