1. 程式人生 > 其它 >unity transform_Unity 遊戲框架搭建 2019 (十七) Transform 重置

unity transform_Unity 遊戲框架搭建 2019 (十七) Transform 重置

技術標籤: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,如下圖所示。

f6fbb29da0b54c8d34d4db55ea3c2385.png
006tNc79gy1fzdi20inapj302b03lgle.jpg

實際上 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 獲取第一時間更新通知及更多的免費內容。

    334797025fe2551ae5c178b4bd66a888.png