오브젝트가 가는 방향에 따라 자연스럽게 회전시키고 싶을 때
2022. 1. 20. 21:00ㆍUnity3D/경험 기록
if(move_vector.magnitude > 0.01f) //오브젝트가 조금이라도 움직이기 시작할 때
{
1) Quaternion q = Quaternion.LookRotation(move_vector, Vector3.up);
2) this.transform.rotation = Quaternion.Lerp(this.transform.rotation, q, 0.1f);
}
1)번 코드는 사원수 값을 구하는 것이다. (사원수가 뭔지?)
캐릭터의 정면이 move_vector 방향을, 위(머리)가 세계의 위쪽 방향(Vector3.up)을 향하도록
하는 회전값을 q로 받는다.
2)번 코드는 지금 향하고 있는 방향(this.transform.rotation)에서
q가 가리키는 방향으로 10% 회전한 방향을 알려준다.
그리고 그 방향을 캐릭터의 방향에 대입한다.
보통은 왼쪽 방향키를 누르다가 오른쪽 방향키를 누르면 캐릭터도 휙 하고 순간적으로 방향을 바꾼다.
하지만 이 코드는 키가 눌려있는 동안 서서히 그쪽으로 전환하도록 한다.
'Unity3D > 경험 기록' 카테고리의 다른 글
velocity.x 값을 통해 애니메이션 제어하기 (0) | 2022.01.21 |
---|---|
유니티 조건문에 태그 비교할 때 (0) | 2022.01.21 |
애니메이션의 속도를 조절하고 싶을 때 (0) | 2022.01.20 |
프리팹을 동적 생성 하고 싶을 때 (0) | 2022.01.19 |
씬을 비동기로 Load하고 싶을 때 (0) | 2022.01.19 |