Unity3D腳印3——Transform

Transform組件用於控制物體的位置,旋轉和縮放,這裏面涉及兩個重點,一個是座標系,這個包括局部座標系和世界座標系的關係,另外一個是父子節點,GameObject的父子節點關係是通過Transform組件來維護的。

 

位置相關的:

 

5個和位置相關的Vector3類型變量

up 表示世界座標的Y軸方向

right 表示世界座標的X軸方向

forward 表示世界座標的Z軸方向

position 表示對象在世界座標系中的位置

localPosition 表示對象相對父節點變換的座標位置

 

void Translate(Vector3 translation, Space relativeTo = Space.Self);

在relativeTo座標系上,平移translation距離,Space有兩個座標系,Self表示本地座標系,World表示世界座標系

 

PS.如果使用Vector3的up, right, forward,就是基於局部座標系的移動

 

旋轉相關的:

 

2個Vector3類型的變量

eulerAngles 在世界座標旋轉作爲歐拉角度

localEulerAngles 相對父節點的歐拉角旋轉

 

2個Quaternion類型的變量

rotation 在世界座標系中的旋轉角度,是一個Quaternion對象(四元數)

localRotation 相對於父節點的旋轉角度

 

void Rotate(Vector3 eulerAngles, Space relativeTo = Space.Self) 應用一個歐拉角繞x,y,z軸旋轉(根據x,y,z的順序)

 

void RotateAround(Vector3 point, Vector3 axis, float angle) 按照angle°在世界座標的point上旋轉物體

 

void LookAt(Transform target, Vector3 worldUp = Vector3.up) 旋轉物體使forward向量指向target的位置

 

縮放相關的:

 

1個Vector3類型的變量

localScale 相對於父節點的縮放

 

父子節點相關的:

 

parent 變量表示Transform的父節點

 

root 表示它的根節點,如果沒有父節點,它會返回自己

 

Transform Find(string name) 根據名字查找子節點

 

bool IsChildOf(Transform node) 判斷該Transform是否某Transform的子節點

 

void DetachChildren() 解除所有子節點的父子關係

 

座標系的轉換:

 

TransformDirection 將一個方向從局部座標系轉換到世界座標系

InverseTransformDirection 將一個方向從世界座標系轉換到局部座標系

 

TransformPoint 將一個點從局部座標系轉換到世界座標系

InverseTransformPoint 將一個點從世界座標系轉換到局部座標系

 

先記錄到這裏吧,感覺應該還有點什麼的...

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章