게임 좌표계 완전 정리 – 월드 좌표 vs 로컬 좌표

 게임을 만들다 보면 캐릭터, 적, 아이템, 카메라 등 모든 오브젝트가 좌표를 가진다는 사실을 알 수 있다.

하지만 좌표를 잘못 이해하면 캐릭터 이동이 이상해지거나, 부모-자식 구조를 가진 오브젝트가 엉뚱한 방향으로 움직이는 문제가 생긴다.

이번 글에서는 **월드 좌표(World)와 로컬 좌표(Local)**의 차이를 명확하게 정리하고, 실습 예제까지 보여줄 거다.


1. 월드 좌표(World Coordinates)란?

  • 게임 씬 전체의 기준 좌표계

  • 씬(Scene) 안에서 고정된 절대 좌표

  • 모든 오브젝트가 이 좌표를 기준으로 위치를 가짐

예시:

transform.position = new Vector3(0, 0, 0); // 씬의 원점으로 이동

→ 이 위치는 씬 전체에서의 좌표를 의미하며, 부모 오브젝트와 상관없이 동일한 위치로 이동함.


2. 로컬 좌표(Local Coordinates)란?

  • 부모 오브젝트를 기준으로 한 상대 좌표

  • 부모가 이동하면 자식 오브젝트의 위치도 함께 변함

  • 주로 캐릭터 팔, 총, 장착 아이템 등 부착된 오브젝트에 사용

예시:

transform.localPosition = new Vector3(0, 1, 0); // 부모 기준 위로 1만큼

→ 부모가 움직이면, 자식은 부모 위치 + 로컬 좌표로 따라 움직임.


3. 월드 vs 로컬 차이

항목월드 좌표로컬 좌표
기준씬 전체부모 오브젝트
이동 영향부모와 무관부모 이동 시 같이 이동
사용 예플레이어 위치, 카메라 고정무기, 팔, 파티클 위치

4. 실제 활용 사례

  • 캐릭터 팔에 총 장착 → 로컬 좌표 사용

  • 플레이어 절대 위치 계산 → 월드 좌표 사용

  • 카메라가 플레이어를 따라갈 때 → 월드 좌표 기반으로 위치 보정

💡 팁: Unity에서는 transform.position월드 좌표, transform.localPosition로컬 좌표라는 점을 기억하면 헷갈리지 않는다.


5. 마무리

월드 좌표와 로컬 좌표를 이해하면,

  • 부모-자식 구조 오브젝트 이동

  • 카메라와 캐릭터 동기화

  • 애니메이션 및 장착 아이템 구현

모든 동작을 안정적으로 처리할 수 있다.

👉 다음 글에서는 **충돌 판정 알고리즘(AABB, Circle, Polygon)**을 다뤄서, 오브젝트 간 충돌을 정확하게 구현하는 방법을 알아보겠다.

댓글

이 블로그의 인기 게시물

🚀 멀티플레이어 게임 최적화와 성능 튜닝 – 부드러운 게임 플레이 구현

⚔️ 멀티플레이어 스킬/아이템 동기화 – 실시간 전투 구현

🎬 멀티플레이어 리플레이 시스템 구현 – 게임 플레이 녹화와 재생