출처: [Unity] 캐릭터 이동 시 카메라 따라가기 (3인칭) (tistory.com)
게임을 만들 때 카메라와 캐릭터가 동시에 움직여야 하는 상황이 오는데
이 때 사용하면 좋은 코드를 설명하고자 한다.
만약에 내가 만드는 게임이 3D라면 offsetY 값을 -10.0f 로 설정하여 캐릭터와 카메라가 동시에 겹치지 않게 거리를 벌려야 한다.
하지만 2D게임 이라면 카메라와 캐릭터가 동시에 같은 곳을 바라보고 움직여야 하기 때문에 offset X, Y 값을 둘 다 0으로 설정한다.
offsetZ값은 필요 없는 것 같이 보이지만 Vector2로 characterPos를 변경하고 offsetZ값을 지웠더니 캐릭터의 Z값이 들쭉 날쭉하면서 캐릭터가 사라졌다 생겼다 한다.
그러므로 Vector3로 offsetZ값을 고정값으로 뒀다.
마지막에 있는 Lerp는 카메라의 이동을 부드럽게 해주는 기능이다. 현재 스크립트를 받고있는 곳의 포지션과 캐릭터 포지션의 값만 있으면 사용할 수 있다.
사용법
우선 메인카메라에 사용하려고 제작한 코드이기 때문에 MainCamera에 위에서 설명한 스크립트를 컴포넌트 추가해준다.
그리고 컴포넌트로 추가한 스크립트에서 필요로하는 (Gameobject Character) 인자인 내가 움직이고자 하는 캐릭터를 넣어주면된다.
회고
카메라를 어떻게 캐릭터와 같이 움직일까 잠깐 고민했었는데 생각해보니 메인카메라의 포지션만 건들면
해결되는 문제였다.
내일은 캐릭터이동에 관하여 더 공부하여 Input Controller에 대한 개념을 확실히 할 것이다.
'TIL > Unity' 카테고리의 다른 글
[Unity] 충돌체크 기능 OnCollision, OnTrigger (0) | 2023.09.12 |
---|---|
Unity deltaTime (0) | 2023.09.11 |
싱글톤(singleton)/Unity (0) | 2023.08.16 |
Unity/ TimeScale (0) | 2023.08.16 |
Unity Instansiate / Destroy (0) | 2023.08.16 |