1. Rotate 사용
void Start()
{
Quaternion targetRotation = Quaternion.Euler(new Vector3(45, 0, 0));
transform.rotation = targetRotation;
transform.Rotate(new Vector3(30, 0, 0));
}
2. 쿼터니언을 백터3로 변환 -> 로테이션 더하기 -> 다시 쿼터니언으로 변환
void Start()
{
Quaternion originalRotation = transform.rotation;
//쿼터니언 값을 백터3로 바꿔서 더해주고 다시 쿼터니언으로 바꿔줌
Vector3 originalRotationInvector3 = originalRotation.eulerAngles;
Vector3 targetRotationVec = originalRotationInvector3 + new Vector3(30, 0, 0);
Quaternion targetRotation = Quaternion.Euler(targetRotationVec);
transform.rotation = targetRotation;
}
3. Quaternion끼리 곱해주기
void Start()
{
Quaternion originalRotation = Quaternion.Euler(new Vector3(45, 0, 0));
Quaternion plusRotation = Quaternion.Euler(new Vector3(30, 0, 0));
Quaternion targetRotation = plusRotation * originalRotation;
transform.rotation = targetRotation;
}
참고
1. Quaternion에서 Rotation 값 Vector3로 가져오는 법
void Start()
{
//Rotation (45,0,0) 상태임
Quaternion originalRotation = transform.rotation;
//eulerAngles라는 함수 사용하면 가능
Vector3 originalRotationInvector3 = originalRotation.eulerAngles;
Debug.Log(originalRotationInvector3);
}
'유니티 > 유니티 문법?' 카테고리의 다른 글
싱글톤 (점수 관리 같은거 할 때) (2) | 2021.04.19 |
---|---|
코루틴 (대기시간 주는 것) (0) | 2021.04.19 |
리스트 (실시간으로 입력 받음) (0) | 2021.04.18 |
인스턴스화 (0) | 2021.04.12 |
유니티 쿼터니언 Lerp (0) | 2021.04.12 |