Unity C# | Quaternion & EulerAngles

閱讀時間約 1 分鐘

前言

  這篇文章將會講述在Unity中跟角度有關的兩項變數有什麼樣的地位和運作方式,我們只要撰寫跟角色角度有關的程式碼,就絕對不會繞開這兩個變數。

Quaternion | 四位數

  四位數可用於表示 GameObject的方向或旋轉,內部包含四個數字,分別代表 x, y, z, w,但這些數字不表示角度或軸,因此通常不需要接訪問他們,因此只需要知道四元數表示 3D空間中的旋轉,不需要直接修改這些值。
  更為直白的說法,四位數是角度的語言,我們使用歐拉角然後請系統翻譯成角度看得懂的格式就可以了。

Quaternion.LookRotation

  接下來會用到簡單的數學原理,我們需要找到標示目標向量的位置,這項函數可以讓物件轉面向目標位置。
Vector3 Direction  = target.position - this.transform.position;
Quaternion rotation = Quaternion.LookRotation(Direction);
this.transform.rotation = rotation;

Quaternion.Euler

  這是其中一個我們不需要了解 Quaternion的例子,因為我們只需要使用這個函式,並輸入我們容易理解的歐拉角即可。
Quaternion rotation = Quaternion.Euler(0, 30, 0);

EulerAngles | 歐拉角

  更加值觀的表現方式,是我們在 Unity 看到的Rotation,具體的旋轉使用歐拉角是更加方便的一種方式。
public Vector3 eulerAngles;
public Vector3 localEulerAngles;

使用方式

   Quaternion 是值得儲存方式,Euler 是值的呈現方式,所以在程式運用中會更常使用Quaternion去做值的換算,而非使用 Euler ,因為Quaternion本身就包含 Euler 相關的函式。

後記

  當初在學習到這方面的知識時,是跟著一步一步做出來,然後才去慢慢理解內容物有那些東西,在一次次修改程式碼的過程中,也對這些數值和運算流程更加清楚,也更能搞懂自己在學什麼。

參考資料

Unity API | Quaternion

Unity API | Euler

為什麼會看到廣告
100會員
246內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言0
查看全部
發表第一個留言支持創作者!
瓶裝雪的沙龍 的其他內容
Unity C# | Invoke & InvokeRepeating
閱讀時間約 1 分鐘
Unity C# | Switch & enum
閱讀時間約 4 分鐘
Unity Component | Shader & Material
閱讀時間約 1 分鐘
Unity C# | Update 家族
閱讀時間約 1 分鐘
你可能也想看
創作者要怎麼好好休息 + 避免工作過量?《黑貓創作報#4》午安,最近累不累? 這篇不是虛假的關心。而是《黑貓創作報》發行以來可能最重要的一篇。 是的,我們這篇講怎麼補充能量,也就是怎麼休息。
Thumbnail
avatar
黑貓老師
2024-06-29
Unity開發學習筆記#0 | 前言最近ChatGPT-4o的發布引起了我的注意,又在Youtube看上見有人教學如何用ChatGPT設計屬於自己的家教,被他的能力震撼到的我一頭熱就訂閱了plus版然後馬上設計了一個自己的家教。最一開始的時候我只有把它用來學習語言的輔助,但用著用著忽然想到:「如果我把它用來引導我學習我沒有學過的領域呢
Thumbnail
avatar
立羽
2024-05-29
Unity(U) 1Q24 - 市占高又如何遊戲引擎開發商 Unity 一直是我感覺很有發展潛力的企業,《原神》、《王者榮耀》等明星遊戲都是透過其引擎所建構,在手遊開發領域,擁有絕對統治力。然而,營運實績與線圖走勢卻不是如此,近 8 季毛利成長率有 4 季為負,1Q24 營運收入是近 8 季來最低值,-$375M…
Thumbnail
avatar
Allexx
2024-05-15
2024 虛擬實境 x 人因設計 05unity C#語法教學入門_2完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
avatar
Gavin Hsieh
2024-04-24
遊戲開發前學習筆記|Unity C#| day 2 學習基礎[2]前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 類別Class 創造類別之後就可以持續使用創建的類別來創建物件,以武器為例,在遊戲裡有不同的武器,但是他們的屬性是一樣的,我們就可以在一個類別裡面設定不同
Thumbnail
avatar
立言
2023-06-21
avatar
hls Ding
2023-01-31
Unity x Mysql x PHP x Json開啟Xampp伺服器,並啟動 apache & mysql mysql建立 開啟Unity 建立 Script toPhp.cs Unity物件 toWeb物件設定 此處需特別留意設定 UItext & MYtext ,否則會出現物件未設定的Null錯誤 Button 設定 test.php con
Thumbnail
avatar
吳佳鑫
2022-12-18
Unity 遊戲開發引擎與元宇宙的關係  透過Unity平台開發出來的遊戲,比較廣為人知,例如憤怒鳥和寶可夢。Unity 的遊戲開發技術,可以刺激遊戲產業,更朝氣蓬勃有效率地開發新遊戲用戶透過遊戲平台,就可以進入元宇宙的世界!
avatar
Lynn
2022-06-27
Unity還能繼續持有嗎?Unity Q1財報分析Unity在這週公布了2022年Q1的財報,財報發布後股價下挫30%,下跌至30美元,已經遠遠跌破兩年前的上市價。Unity雪崩式的下跌是因為Q1的營運不理想、未來的營運預期不理想、還是單純是隨著近期成長股估值修正而下跌呢?這篇文會分析Unity 2022Q1財報及預測Unity未來的營運狀況。
Thumbnail
avatar
易起聊聊
2022-05-13