스파르타코딩클럽_Unity개발과정
유니티 숙련 팀 과제 - 서바이벌 (4)
ybbro
2025. 5. 29. 09:49
1. 오늘 작업 내용
스타크래프트의 프로토스 파일런과 비슷합니다.
발전기의 전력 공급 가능 영역 내에 설치할 수 있는 건물의 건설 메커니즘을 만들었습니다.
타겟이 되는 적을 바라보도록 포탑이 상하좌우 회전하게 만들었습니다.
모든 타입의 적을 자연스럽게 추적하는 느낌을 줍니다.
2. 트러블슈팅 : 에셋을 가져와서 사용하는데 오브젝트가 움직이지 않음
1) 문제 상황
기존에 잘 작동하던 부분이고 코드를 건드리지 않았음에도,
플레이어 입력에 따라 이동/회전해야 할 오브젝트가 꿈쩍하지 않았습니다.
2) 원인 추적
(1) 이동/회전 확인 : 해당 오브젝트의 트랜스폼에 transform.position, Rotate() 등을 사용하였으나 인스펙터의 좌표 변화 없음
(2) 입력 확인 : 오브젝트 이동/회전 외 다른 입력은 동작 >> 이동/회전 관련 코드도 검토했으나 문제 없음
(3) 오브젝트의 실제 동작 확인 : 프로그램 실행 도중 문제의 오브젝트를 터치하여 값/씬 뷰에서의 동작 확인
외형은 그대로 있으나 메쉬 콜라이더만 이동해 있습니다.
여기서 에셋을 의심하고 관찰한 결과 문제를 해결할 수 있었습니다.
3) 해결
에셋의 프리팹에 Static이 체크되어 있어서 트랜스폼 값이 변하지 않았던 것입니다.
아마도 에셋의 제작자 님이 건물은 움직이지 않으니 최적화를 위채 체크해 뒀던 것으로 보입니다.
이것을 복사해서 만들었기에 그 프리팹들도 정적인 오브젝트로 되어 움직이지 않았던 것입니다.
이를 해제하니 정상적으로 이동/회전이 되는 것을 확인했습니다.