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