상세 컨텐츠

본문 제목

유니티 Quaternion 노트

Unity/C# note

by 오발탄LAB 2020. 8. 19. 13:59

본문

반응형

 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); // 위와 동일

 

eulerAngles

float rotY = transform.rotation.eulerAngles.y;

 

 각도 더하기 

 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;

 

 각도 회전시키기 

 1. Quaternion.Slerp

this.transform.rotation = Quaternion.Slerp(transform.rotation, quaternion.Euler(new Vector3(0,0,0)), turnSpeed);)
반응형

관련글 더보기

댓글 영역