2023년 12월 28일 목요일

Unity - 3인칭 캐릭터 이동

 


3D 캐릭터가 3인칭 기준으로 이동하는 방법을 알아보자 




먼저 카메라 회전으로 마우스 움직임이 있을 경우, 

Clamp함수로 최대 최소 각도를 정하여 회전을 제한 하고

Lerp함수로 카메라의 움직임을 부드럽게 만들어준다.

(rotation = newRot 해도 상관없음)




그리고 3인칭 카메라를 아무 오브젝트의 자식으로 만들고 최상위 transform.position을

카메라를 따라가게 하고 싶은 오브젝트의 Position으로 덮어버리면 된다.




캐릭터를 이동시킬때 좌우나 앞뒤 버튼을 동시에 눌렀을 때

안움직이게 해놓고 누른 방향키대로 어느 방향으로 가야하는지

처리하기 쉽게 방향벡터를 생성해준다.




나아가려는 방향을 카메라가 보고있는 rotation Y의 각도만큼 회전시켜서
카메라 기준으로 움직이게 한다.
캐릭터도 마찬가지로 해당 방향으로 바라보게 회전시킨다.



어떤 방향키라도 눌렀을 경우 캐릭터 상태를 Walk로 변경하고
애니메이션의 트리거를 사용하여 캐릭터를 걷는 모션으로 전환한다.










댓글 없음:

댓글 쓰기

c++ thread.h

 c++에서 쓰레드 돌릴려면 thread.h 헤더를 쓰면 되는데 이 친구는 쓰레드가 아직 실행 중인지, 아니면 강제 종료하거나 하는 함수가 없어서 조금 아쉬운 애다. std::thread 는 로컬 변수로 선언하든 new 동적 할당을 하든 start 함...