개발 낙서장

[Unity 3D] Collider의 크기를 넘겨줄 때 주의사항 본문

Unity/Devlog

[Unity 3D] Collider의 크기를 넘겨줄 때 주의사항

권승준 2023. 1. 9. 18:12

구현 동기

전에 간단히 수정했던 몬스터 체력바인데 같은 몬스터의 체력바 크기가 달랐었다.

게임에 문제가 가는 버그는 전혀 아니지만 그냥 보기에 불편하기도 하고 왜 다를까 궁금해서 수정해야겠다고 생각했다.

구현 내용

몬스터 Collider는 이미 프리팹으로 만들어놓은 거라 사이즈가 변할 리가 없을 텐데 대체 왜 사이즈가 다르게 넘어갈까 고민해봤더니 한 가지 답을 찾을 수 있었다.

몬스터마다 Local 상 좌표, 회전값이 다르기 때문에 실제로는 같은 값이어도 넘겨줄 때에는 World 기준으로 넘겨주기 때문에 값이 다르게 나오는 것 같다.
실제로 간단한 테스트를 해본 결과 몬스터가 생성될 때와 체력바가 값을 넘겨받을 때의 값이 다르다는 것을 알 수 있었다.

   


몬스터가 생성될 때의 값


체력바가 생성될 때의 값


몬스터가 생성될 때의 값은 (1, 1, 1)로 같지만 체력바가 넘겨받는 값은 전부 제각각이다. 내 추측으로는 Local과 World 상에서 값의 차이가 있기 때문인 것 같다.

해결법은 간단하다. 쓸데없이 Collider를 넘겨주는 것이 아니라 Vector3의 값을 넘겨주면 값이 변형될 일 없이 온전하게 넘어갈 것이다.

구현 후기

Collider.size로 값을 넘겨주니 값 변형 없이 온전하게 넘어가는 것을 확인할 수 있었다.
값이 어떻게 넘어가는지에 대한 고민 없이 그냥 대충 코딩하다 보니 생긴 문제인 것 같다.

실제 게임 개발을 하게 될 때 이런 부분들을 신경쓰지 않고 개발할 경우 개발자에게는 문제가 없지만 실제 플레이하는 유저들한테는 꽤 불편을 야기할 수도 있겠다는 생각이 들었다.

'Unity > Devlog' 카테고리의 다른 글

[Unity 3D] NPC 대화  (0) 2023.01.14
[Unity 3D] 퀘스트  (0) 2023.01.09
[Unity 3D] 몬스터 체력바 수정  (0) 2023.01.06
[Unity 3D] 플레이어 스탯 관리  (0) 2022.05.18
[Unity 3D] 몬스터 체력바  (0) 2022.05.17
Comments