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