Unity 본캠프 TIL

Unity 본캠프 TILUnity 본캠프 TIL (25/03/05) Chapter5 Unity숙련 3D프로젝트 2일차

kk2247401 2025. 3. 5. 21:00

플레이어 움직임,애니메이션 구현중

 

transform.forward    ==>> 현재의 transform을 기준으로 z방향+1크기 벡터를 월드 좌표의 벡터로 변환한값

transform.right    x방향 1 벡터를 월드좌표벡터로

 

 

트러블슈팅

점프,달리기 애니메이션을 이동방향에 맞게 재생하는 기능을 구현 중

  플레이어 오브젝트 하위의 플레이어 모델링의 transform.Rotation을 변경하여 구현하려함

     float dgree = Mathf.Atan2(_curMoveInput.x, _curMoveInput.y);

     _animator.transform.Rotation = Quaternion.Euler(0, dgree * Mathf.Rad2Deg, 0);

해당 코드로 구현하려 했지만 엉뚱한 방향으로 회전됨

 

원인과 해결 (튜터님께 질문)

부모를 가진 자식오브젝트는 Inspector창에 부모의 Transform을 기준으로한 LocalTransform만 나타나지만

내부적으로 world기준 Transform을 보유하고있음

따라서 _animator.transform.Rotation은 world기준 Rotation값을 설정하는것이라 엉뚱한 방향으로 회전된것

world기준을 local기준으로 바꾸기위해

_animator.transform.LocalRotation = Quaternion.Euler(0, dgree * Mathf.Rad2Deg, 0);

코드변경하여 정상작동 확인