일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 유클리드호제법
- Unity2D
- 언리얼엔진
- 이분탐색
- 스파르타내일배움캠프
- Unity3d
- 스택
- FSM
- Firebase
- 유니티
- 구현
- Photon
- 문자열
- UnrealEngine
- 워크플로
- 알고리즘
- 내일배움캠프
- BFS
- 스파르타내일배움캠프TIL
- Unity
- C++
- 포톤
- unityui
- UE4
- 프로그래머스
- 순열
- QueryDSL
- 해시
- c#
- Inventory
Archives
- Today
- Total
개발 낙서장
[Unity 3D] Collider의 크기를 넘겨줄 때 주의사항 본문
- 기존 개발 링크 https://dachomi97.tistory.com/27
구현 동기
전에 간단히 수정했던 몬스터 체력바인데 같은 몬스터의 체력바 크기가 달랐었다.
게임에 문제가 가는 버그는 전혀 아니지만 그냥 보기에 불편하기도 하고 왜 다를까 궁금해서 수정해야겠다고 생각했다.
구현 내용
몬스터 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