unity transform_Unity 遊戲框架搭建 2019 (十七) Transform 重置
阿新 • • 發佈:2020-12-16
技術標籤:unity transform
今天我們再往下接著探索,我們的 Transform。
我們經常要寫這樣的邏輯,對一個 Transform 的位置、旋轉、縮放值進行重置。
程式碼如下:
transform.localPosition=Vector3.zero;
transform.localScale=Vector3.one;
transform.localRotation=Quaternion.identity;
程式碼大家應該經常會寫到。
我們提取後的方法如下:
#ifUNITY_EDITOR
usingUnityEditor;
#endif
usingUnityEngine;
namespaceQFramework
{
publicclassTransformIdentity:MonoBehaviour
{
#ifUNITY_EDITOR
[MenuItem("QFramework/11.Transform歸一化")]
#endif
privatestaticvoidMenuClicked(){
vartransform=newGameObject("transform").transform;
Identity(transform);
}
///
///重置操作
///
///Trans.
publicstaticvoidIdentity(Transformtransform){
transform.localPosition=Vector3.zero;
transform.localScale=Vector3.one;
transform.localRotation=Quaternion.identity;
}
}
}
程式碼的執行結果是正確的。
那麼有人會問 Identity 是什麼意思呢?Identity 其實是一個矩陣的型別,對角線全部是 1 而其他的部分全部是 0,如下圖所示。
實際上 Transform 本質是一個 4x4 的矩陣,這個矩陣可以記錄矩陣的位置、旋轉和縮放值。而 Identity 矩陣對應的 Transform 就是位置為 0、縮放為 1、Rotation 值為 Quaternion.identity 這樣的矩陣。
這裡不太理解的同學不要緊,重點還是以上程式碼中的 Identity 方法的實現。
OK,到這裡,我們又可以進行一次匯出了。
到今天為止,我們收集了十一個示例了。收穫滿滿,大家應該收集了更多的示例了吧?
今天的內容就這些。
轉載請註明地址:涼鞋的筆記:liangxiegame.com
更多內容
QFramework 地址:https://github.com/liangxiegame/QFramework
QQ 交流群:623597263
Unity 進階小班:
框架搭建訓練(第一年)
跟著案例學 Shader(第一年)
副業的孵化(第二年、第三年)
主要訓練內容:
權益、授課形式等具體詳情請檢視《小班產品手冊》:https://liangxiegame.com/master/intro
關注公眾號:liangxiegame 獲取第一時間更新通知及更多的免費內容。