게임 좌표계 완전 정리 – 월드 좌표 vs 로컬 좌표
게임을 만들다 보면 캐릭터, 적, 아이템, 카메라 등 모든 오브젝트가 좌표를 가진다는 사실을 알 수 있다.
하지만 좌표를 잘못 이해하면 캐릭터 이동이 이상해지거나, 부모-자식 구조를 가진 오브젝트가 엉뚱한 방향으로 움직이는 문제가 생긴다.
이번 글에서는 **월드 좌표(World)와 로컬 좌표(Local)**의 차이를 명확하게 정리하고, 실습 예제까지 보여줄 거다.
1. 월드 좌표(World Coordinates)란?
-
게임 씬 전체의 기준 좌표계
-
씬(Scene) 안에서 고정된 절대 좌표
-
모든 오브젝트가 이 좌표를 기준으로 위치를 가짐
예시:
→ 이 위치는 씬 전체에서의 좌표를 의미하며, 부모 오브젝트와 상관없이 동일한 위치로 이동함.
2. 로컬 좌표(Local Coordinates)란?
-
부모 오브젝트를 기준으로 한 상대 좌표
-
부모가 이동하면 자식 오브젝트의 위치도 함께 변함
-
주로 캐릭터 팔, 총, 장착 아이템 등 부착된 오브젝트에 사용
예시:
→ 부모가 움직이면, 자식은 부모 위치 + 로컬 좌표로 따라 움직임.
3. 월드 vs 로컬 차이
항목 | 월드 좌표 | 로컬 좌표 |
---|---|---|
기준 | 씬 전체 | 부모 오브젝트 |
이동 영향 | 부모와 무관 | 부모 이동 시 같이 이동 |
사용 예 | 플레이어 위치, 카메라 고정 | 무기, 팔, 파티클 위치 |
4. 실제 활용 사례
-
캐릭터 팔에 총 장착 → 로컬 좌표 사용
-
플레이어 절대 위치 계산 → 월드 좌표 사용
-
카메라가 플레이어를 따라갈 때 → 월드 좌표 기반으로 위치 보정
💡 팁: Unity에서는 transform.position
이 월드 좌표, transform.localPosition
이 로컬 좌표라는 점을 기억하면 헷갈리지 않는다.
5. 마무리
월드 좌표와 로컬 좌표를 이해하면,
-
부모-자식 구조 오브젝트 이동
-
카메라와 캐릭터 동기화
-
애니메이션 및 장착 아이템 구현
모든 동작을 안정적으로 처리할 수 있다.
👉 다음 글에서는 **충돌 판정 알고리즘(AABB, Circle, Polygon)**을 다뤄서, 오브젝트 간 충돌을 정확하게 구현하는 방법을 알아보겠다.
댓글
댓글 쓰기