Unity/Unity(๊ธฐ์ด)
์ ๋ํฐ Quaternion
Rainbow๐Coder
2021. 6. 5. 11:33
728x90
Quaternion & Quaternion.Euler
transform.rotation์ Quaternionํํ์ธ (x, y, z, w)์ ํํ๋ก ํ์๋๋ค.
Quaternion.Euler์ Vector3 ๊ฐ์ ๋ฃ์ผ๋ฉด Quaternion ๊ฐ์ผ๋ก ๋ณํ๋๋ค.
transfomr.rotation = Quaternion.Euler(new Vector3(30,50,20));
transform.rotation = Quaternion.Euler(30,50,20); // ์์ ๋์ผ
๊ฐ๋ ๋ํ๊ธฐ
1. Vector3 ๊ฐ์ผ๋ก ๋ณํ ํ ๋ํ ๋ค์ Quaternion์ผ๋ก ๋ค์ ๋ณํ.
Quaternion originalRot = transform.rotation;
Vector3 originalRotVec3 = originalRot.eulerAngles;
Vector3 newRotation = originalRotVec3 + new Vector3(10, 50, 20);
transform.rotation = Quaternion.Euler(newRotation);
2. Quaternion ๊ฐ ๋ํ๊ธฐ(=๊ณฑํ๊ธฐ)
Quaternion originalRot = Quaternion.Euler(new Vector3(5, 20, 40));
Quaternion addRot = Quaternion.Euler(new Vector3(25, 10 ,5));
Quaternion newRot = originRot * addRot; //๊ณฑํ๊ธฐ๊ฐ ํฉ์ ์๋ฏธ
transform.rotation = newRot;728x90