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 將一個點從世界坐標系轉換到局部坐標系
 
先記錄到這里吧,感覺應該還有點什么的...
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM