Skala Kontras
Lights

Rotasi dan orientasi dalam Unity

Dalam Unity, Anda dapat menggunakan sudut Euler dan quaternions untuk mewakili rotasi dan orientasi. Perwakilan ini setara tetapi memiliki kegunaan dan batasan yang berbeda.

Biasanya, Anda memutar benda di sceneAdegan berisi lingkungan dan menu permainan Anda. Pikirkan setiap file Adegan unik sebagai tingkat yang unik. Di setiap Adegan, Anda menempatkan lingkungan, hambatan, dan dekorasi, pada dasarnya merancang dan membangun permainan Anda dalam potongan-potongan. More info
Lihat di Glossary
Anda menggunakan Transform componentKomponen Transform menentukan Posisi, Rotasi, dan Skala setiap objek di tempat kejadian. Setiap GameObject memiliki Transform. More info
Lihat di Glossary
, yang menampilkan orientasi sebagai sudut Euler. Namun, rotasi dan orientasi toko Unity secara internal sebagai quaternions, yang dapat berguna untuk gerakan yang lebih kompleks yang mungkin menyebabkan kunci gimbal.

Sudut Euler

Dalam Transform koordinat, Unity menampilkan rotasi dengan properti vektor X, Y, dan Z. Tidak seperti vektor normal, nilai-nilai ini sebenarnya mewakili sudut (dalam derajat) rotasi tentang X, Y, dan Z.

Rotasi sudut Euler melakukan tiga rotasi terpisah di sekitar tiga sumbu. Unity melakukan rotasi Euler akibatnya sekitar sumbu z, sumbu x dan kemudian sumbu y. Metode rotasi ini adalah rotasi extrinsik; sistem koordinat asli tidak berubah sementara rotasi terjadi.

Untuk memutar GameObjectObjek mendasar dalam adegan Unity, yang dapat mewakili karakter, props, pemandangan, kamera, waypoints, dan banyak lagi. Fungsi GameObject didefinisikan oleh Komponen yang melekat padanya. More info
Lihat di Glossary
, Anda dapat memasukkan nilai sudut seberapa jauh Anda ingin setiap sumbu untuk memutar ke komponen Transform. Untuk memutar GameObjects Anda dengan skrip, gunakan Transform.eulerAngles. Jika Anda mengonversi ke sudut Euler untuk melakukan perhitungan dan rotasi, Anda masalah risiko dengan kunci gimbal.

Kunci Gimbal

Ketika objek di ruang 3D kehilangan tingkat kebebasan dan hanya dapat berputar dalam dua dimensi, itu disebut kunci gimbal. Kunci Gimbal dapat terjadi dengan sudut Euler jika dua sumbu menjadi paralel. Jika Anda tidak mengubah nilai rotasi ke sudut Euler di skrip Anda, penggunaan quaternions harus mencegah kunci gimbal.

Jika Anda memiliki masalah dengan kunci gimbal, Anda dapat menghindari sudut Euler jika Anda menggunakan Transform.RotateAround untuk rotasi. Anda juga dapat menggunakan Quaternion.AngleAxis pada setiap sumbu dan multiply mereka bersama-sama (multiplikasi yang memadai berlaku setiap rotasi pada gilirannya).

Quaternions

Quaternions menyediakan notasi matematika untuk representasi unik orientasi spasial dan rotasi di ruang 3D. Sebuah quaternion menggunakan empat angka untuk mengkodekan arah dan sudut rotasi di sekitar unit sumbu dalam 3D. Empat nilai ini adalah angka yang kompleks daripada sudut atau derajat. Anda dapat melihat ke matematika quaternions untuk informasi lebih lanjut.

Unity mengubah nilai rotasi untuk quaternions untuk menyimpannya karena rotasi quaternion efisien dan stabil untuk menghitung. Editor tidak menampilkan rotasi sebagai quaternions karena quaternion tunggal tidak dapat mewakili rotasi lebih dari 360 derajat tentang setiap sumbu.

Anda dapat menggunakan quaternions langsung jika Anda menggunakan kelas Quaternion. Jika Anda menggunakan skrip untuk rotasi Anda, Anda dapat menggunakan kelas Quaternion dan fungsi untuk membuat dan mengubah nilai rotasi. Anda dapat menerapkan nilai untuk rotasi Anda sebagai sudut Euler tetapi Anda perlu menyimpannya sebagai quaternions untuk menghindari masalah.

Sitemap Sudut Euler dan quaternions

Untuk mengkonversi antara quaternions dan sudut Euler untuk melihat dan mengedit rotasi Anda dengan cara yang disukai, Anda dapat menggunakan skrip:

  • Untuk mengkonversi dari sudut Euler untuk quaternions, Anda dapat menggunakan fungsi.
  • Untuk mengubah quaternion ke sudut Euler, Anda dapat menggunakan fungsi.

Sumber daya tambahan

Skala Kontras
Lights