728x90

0. 서문

게임 제작 간 무기 위치 초기화 동작에 오류 발생

회전형 무기 중심이 플레이어에서 벗어난 버그가 종종 발생

1. 문제 원인

객체의 위치 초기화를 'gameObject.position = Vector3.zero' 방식으로 초기화를 적용함.

mWeaponPool.transform.position = Vector3.zero;

이때, position 값은 'World Space' 기준으로 적용됨

- position: World Space 내 transform 좌표 (게임 내 공간에 따라 x,y,z가 결정)

- localPosition: 부모 객체 transform 기준 상대 좌표

회전형 무기 생성 오류 예시
World Space 예시\

+) Screen Space

Screen Space (선택한 값에 따라 X, Y, Z 좌표가 가변됨)

2. 해결 방안

부모 객체와의 상대 좌표를 활용한 초기화 적용

3. 적용 방법

// mWeaponPool.transform.position = Vector3.zero; (기존 초기화 방법, 오류 발생)
mWeaponPool.transform.localPosition = Vector3.zero;
mWeaponPool.transform.localRotation = Quaternion.identity;

4. 참고 자료

 

https://docs.unity3d.com/ScriptReference/Transform-localPosition.html

 

Unity - Scripting API: Transform.localPosition

Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. Close

docs.unity3d.com

https://docs.unity3d.com/ScriptReference/Transform-position.html

 

Unity - Scripting API: Transform.position

Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. Close

docs.unity3d.com

 

+ Recent posts