Transform 學習和應用

2021-07-15 06:44:37 字數 3086 閱讀 4921

link:

transform 變換,是場景中最常打交道的類,用於控制物體的位移,旋轉,縮放等功能。

transform

class, inherits from component, ienumerable

position, rotation and scale of an object.

控制物體的位置,旋轉和縮放。

// moves all transform children 10 units upwards!

for (var child : transform in transform)

每乙個場景中的物體都有transform這個類,他是用來儲存和處理物體的位移,旋轉和縮放的。每乙個transform都可以有乙個父物體,這可以讓你得到下游節點的位移旋轉和縮放。這個層次結構關係可以從hierarchy面板中看到。他還支援enumerators,以使用迴圈來遍尋所有的子節點。

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,用來移動物體的函式,非常常用的乙個函式。

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

同上如果relativeto 不是null,則以目標物體relativeto的自身軸向作為參考座標系。

同上

指令碼:var speed=30;

//將物體以30公尺每秒的速度向前移動。

trasform.translate(vector3.forward*speed*time.deltatime);

2)rotate,用來旋轉物體的函式,非常常用,在知道需要旋轉的角度的情況下。如果要讓物體旋轉到指定位置,需要搭配quaternion來使用。

旋轉eulerangles度(3個軸向分別旋轉),以relativeto為參考座標系

同上

以axis為軸旋轉angle度,以relativeto為參考座標系

3)rotatearound 讓物體以某一點為軸心成圓周運動。

讓物體以point為中心,繞axis為軸向旋轉angle度。保持原來與point的距離。

4)lookat 讓物體的z軸看向目標物體

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

讓物體看向worldposition

5)transformdirection

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

6)inversetransformdirection

與transformdirection相反,從世界座標轉換到自身相對座標。

7)transformpoint

把乙個點從自身相對座標轉換到世界座標

8)inversetransformpoint

把乙個點從時間座標轉換到自身座標的位置。

9)detachchildren

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

10)find

找到乙個名字是name的物體並返回

如果沒有找到則返回null。如果字串被/隔離,函式則會像檔案路徑一樣逐級下查。

// the magical rotating finger

function

update()

11)ischildof

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

transform函式的應用

transform函式的作用是 將某操作應用於指定範圍的每個元素。transform函式有兩個過載版本 transform first,last,result,op first是容器的首迭代器,last為容器的末迭代器,result為存放結果的容器,op為要進行操作的一元函式物件或sturct cl...

transition和transform的相關知識

功能 實現元素不同狀態之間的平滑過渡。之前 元素 hover狀態 直接切換,從開始狀態到結束狀態,瞬間完成,中間過程幾乎無法檢視。格式 transition 過渡的屬性 完成時間 s 運動曲線 延遲時間 數值型的屬性才可以設定過渡。width,height,color,font size trans...

transform基本轉換應用2D

最近在折騰transform,其實不想寫啥的,但看在忙活的一天多的份上就簡單寫一下額。ps 只作為記錄,語言表達能力有限 transform常用的幾個值 translate 偏移 scale 縮放 skew 拉伸 傾斜 rotate 旋轉 ps 這幾個值都比較好理解,只要記得用到的座標軸y軸是向下的...