Unity Transform常識(轉)


Variables
 
position: Vector3  物體在世界坐標中的位置。 transform.position=Vector3(10,10,10)//把物體放到(x=10,y=10,z=10)的位置
 
localPosition: Vector3  相對位置,或自身位置,物體相對於父物體的位置。
 
eulerAngles: Vector3  軸向旋轉角度,相對於世界坐標。單位為度(°)
 
localPosition: Vector3 相對軸向旋轉角度,或自身的旋轉角度,物體相對於父物體的旋轉。一般使用和處理物體的旋轉角度時都會使用到這個數值。
 
right: Vector3  物體自身的紅色軸向(X軸)在世界坐標中所指向的位置。注意在maya中x軸指向物體的左邊,而unity中的x軸則指向物體的右邊。rigidbody.velotity=transform.right*moveSpeed;//向物體的右側以moveSpeed的速度移動
 
up: Vector3  物體自身的綠色軸向(Y軸)在世界坐標中所指向的位置。
 
forward: Vector3  物體自身的藍色軸向(Z軸)在世界坐標中所指向的位置。
 
rotation: Quaternion  以四元數來表達的物體自身的旋轉。四元數可以快速的處理物體的旋轉方向的計算,搭配Quaternion可以用來計算各種需要的旋轉方案。具體應用方法參見Quaternion篇
 
localRotation: Quaternion 相對於父物體的用四元數來表達的旋轉。
 
localScale: Vector3 物體相對於父物體的縮放
 
parent: Transform 物體的父物體。如果沒有則返回null。如果改變父物體的位置,旋轉和縮放,會同時影響並改變子物體的位置,旋轉和縮放,但是保持相對位置,相對旋轉和相對縮放。
 
worldToLocalMatrix: Matrix4x4 一個表達從世界坐標到相對坐標位置的四維矩陣,Read Only。如果你對矩陣不是很了解,請使用Transform.InverseTransformPoint。
 
LocalToWorldMatrix: Matrix4x4 一個表達從相對坐標到世界坐標位置的四維矩陣,Read Only。如果你對矩陣不是很了解,請使用Transform.TransformPoint。
 
root: Transform  返回物體的最高層的父物體。如果物體本身就是最高層,則返回物體本身。
 
childCount: Int   返回物體的子物體數量。
 
lossyScale:Vector3 返回物體相對於世界坐標的縮放值。 Read Only。沒什么用的一個屬性,當子物體被旋轉后也不是特別精確,也不推薦大家用。如果想要計算物體的世界坐標縮放,最好自己寫計算公式。
 
 
Functions
1)Translate,用來移動物體的函數,非常常用的一個函數。

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

把物體向translation方向移動,距離為translation.magnitude。 relativeTo表示這個移動的參考坐標系。

function Translate (x : float, y : float, z : float, relativeTo : Space = Space.Self) : void

同上

function Translate (translation : Vector3, relativeTo : Transform) : void

如果relativeTo 不是null,則以目標物體relativeTo的自身軸向作為參考坐標系。

function Translate (x : float, y : float, z : float, relativeTo : Transform) : void

同上
 
腳本:
var speed=30;
 
//將物體以30米每秒的速度向前移動。
trasform.Translate(Vector3.forward*speed*Time.deltaTime);
 
 
2)Rotate,用來旋轉物體的函數,非常常用,在知道需要旋轉的角度的情況下。如果要讓物體旋轉到指定位置,需要搭配Quaternion來使用。

function Rotate (eulerAngles : Vector3, relativeTo : Space = Space.Self) : void

旋轉eulerAngles度(3個軸向分別旋轉),以relativeTo為參考坐標系

function Rotate (xAngle : float, yAngle : float, zAngle : float, relativeTo : Space = Space.Self) : void

同上

function Rotate (axis : Vector3, angle : float, relativeTo : Space = Space.Self) : void

以axis為軸旋轉angle度,以relativeTo為參考坐標系
 
3)RotateAround 讓物體以某一點為軸心成圓周運動。

function RotateAround (point : Vector3, axis : Vector3, angle : float) : void

讓物體以point為中心,繞axis為軸向旋轉angle度。保持原來與point的距離。
 
4)LookAt 讓物體的z軸看向目標物體

function LookAt (target : Transform, worldUp : Vector3 = Vector3.up) : void

讓物體的z軸看向target的位置,並以worldUp為y軸指向方向。

function LookAt (worldPosition : Vector3, worldUp : Vector3 = Vector3.up) : void

讓物體看向worldPosition
 
5)TransformDirection

function TransformDirection (direction : Vector3) : Vector3

返回以物體自身為坐標軸的向量direction在世界坐標中的朝向向量。

function TransformDirection (x : float, y : float, z : float) : Vector3

同上
 
6)InverseTransformDirection

function InverseTransformDirection (direction : Vector3) : Vector3

function InverseTransformDirection (x : float, y : float, z : float) : Vector3

與TransformDirection相反,從世界坐標轉換到自身相對坐標。
 
7)TransformPoint

function TransformPoint (position : Vector3) : Vector3

function TransformPoint (x : float, y : float, z : float) : Vector3

把一個點從自身相對坐標轉換到世界坐標
 
8)InverseTransformPoint

function InverseTransformPoint (position : Vector3) : Vector3

function InverseTransformPoint (x : float, y : float, z : float) : Vector3

把一個點從時間坐標轉換到自身坐標的位置。
 
9)DetachChildren

function DetachChildren () : void

把自身所有的子物體的父物體都設成世界,也就是跟自己的所有子物體接觸父子關系。
 
10)Find

function Find (name : string) : Transform

找到一個名字是name的物體並返回
如果沒有找到則返回null。如果字符串被/隔離,函數則會像文件路徑一樣逐級下查。
 
// The magical rotating finger
function Update() {
aFinger = transform.Find("LeftShoulder/Arm/Hand/Finger");
aFinger.Rotate(
Time.deltaTime*20, 0, 0);
}
 
11)IsChildOf

function IsChildOf (parent : Transform) : bool

如果物體是parent的父子層級關系下的一員,返回true;


免責聲明!

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



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