C#中Transform類的介紹


主要用於物體的旋轉移動和縮放(不是原創只是作為筆記)
一、成員變量
position:在世界空間坐標transform的位置。
localPosition:相對於父級的變換的位置。如果該變換沒有父級,那么等同於Transform.position。
eulerAngles:世界坐標系中的旋轉(歐拉角)。
localEulerAngles:相對於父級的變換旋轉角度。
right:世界坐標系中的右方向。(世界空間坐標變換的紅色軸。也就是x軸。)
up:世界坐標系中的上方向。(在世界空間坐標變換的綠色軸。也就是y軸。)
forward:世界坐標系中的前方向。(在世界空間坐標變換的藍色軸。也就是z軸。)
rotation:世界坐標系中的旋轉(四元數)。
localRotation:相對於父級的變換旋轉角度。
localScale:相對於父級的縮放比例。
parent:父對象Transform組件。
worldToLocalMatrix:矩陣變換的點從世界坐標轉為自身坐標(只讀)。
localToWorldMatrix:矩陣變換的點從自身坐標轉為世界坐標(只讀)。
root:對象層級關系中的根對象的Transform組件。
childCount:子對象數量。
lossyScale:全局縮放比例(只讀)。
二、成員函數:
1、LookAt函數
public void LookAt(Transform target)
public void LookAt(Vector3 worldPosition);
public void LookAt(Vector3 worldPosition, Vector3 worldUp = Vector3.up);
public void LookAt(Transform target, Vector3 worldUp = Vector3.up);
旋轉物體,使物體的z軸指向target/worldPosition,對於worldUp的描述是,在完成上面的旋轉之后,繼續旋轉自身,使得當前對象的正y軸朝向與worldUp所指向的朝向一致。
這里的朝向一致指的是新旋轉后的y軸與worldUp在該對象初次旋轉后的xy平面上的投影向量一致。之所以取投影是因為第一次旋轉使物體的z軸指向target/worldPosition后,此時的worldUp向量可能不在xy平面上,要在z軸指向target/worldPosition前提下是y軸朝向與worldUp一致,只能取worldUp在xy平面上的投影。
注意:使用worldPosition向量時要注意方向,一定是target-transform.position,順序反了會使物體背向目標;若使用Transform作為參數,則不必注意。默認情況下,worldUp是Vector3.up(世界坐標系下的y軸)
2、Rotate函數

public void Rotate(Vector3 eulerAngles);
public void Rotate(Vector3 eulerAngles, Space relativeTo = Space.Self);
public void Rotate(float xAngle, float yAngle, float zAngle);
public void Rotate(float xAngle, float yAngle, float zAngle, Space relativeTo = Space.Self);
旋轉一個歐拉角度,它按照zxy的順序進行旋轉,默認情況下局部坐標系下Space.Self

public void Rotate(Vector3 axis, float angle);
public void Rotate(Vector3 axis, float angle,Space relativeTo = Space.Self);
繞axis軸旋轉angle角度,默認情況下局部坐標系下Space.Self。
transform.rotation和Rotate有個區別:
Rotate()方法是:旋轉多少度。在原有的基礎上累加,即旋轉了多少角度。又旋轉了多少角度,是在原有的基礎上在旋轉
rotation屬性是:旋轉到某個角度,就是是在update中每幀都執行。但每次旋轉到的角度都是5,所以是旋轉到5度。一直都是
比如你只想讓他旋轉到多少, 用rotation; 假如想讓他一直轉,可以用Rotate
rotation直接改變了數值, 以達到旋轉效果
Rotate應用一個的旋轉角度每秒1度慢慢的旋轉物體
當然:rotation()還可以通過插值旋轉

 




免責聲明!

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



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