본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
https://fastcampus.info/4oKQD6b




오늘은 몬스터를 처치하면 아이템이 드롭되도록하는 시스템을 만들었다.
이전에 한 것의 반복이었다. json 에 아이템 드롭 정보를 저장하고, GameDataManager에서 읽어오고, ItemManager에서 드롭 처리를 했다. 그리고 몬스터유닛 클래스의 OnDie에서 드롭 함수를 실행하도록 해서 완성했다.
하다가 사소한 문제가 있었는데, 이상하게 몬스터가 죽으면서 위치가 아래로 내려갔고, 그 상태에서 드롭처리가 되니까 아이템이 땅 밑에서 생성되었다. 근데 y 건드리는게 Update에서 뿐이라 이 값이 이상하게 설정될 일이 전혀 없는데 이상했다. 유니티 6 뭔가 이슈가 있는건가 싶었다. 결국 해결은 못했고 기본 높이를 +3 정도로 줘서 일단 땅 위에서 보이도록만 수정했다.
그리고 콜라이더 체크할 때 주로 그 오브젝트에 붙어있는 스크립트를 확인하는 방식으로 했는데, 레이어 마스크를 활용하는 방식과 이 방식중에 어떤게 더 효율적일지 궁금했다. 그래서 따로 찾아봤는데, 큰 차이는 없고 아주 많은 물체를 감지해야하는 경우에는 레이어마스크를 사용하는 방법이 좋다고 했다. 레이어마스크 방식은 비트마스트 검사로 빠르고 가볍다. 그리고 레이어 단위로 특정 레이어간의 충돌을 무시해 OnTrigger가 동작하지 않도록 설정할 수도 있다. 하지만 레이어 수가 32개로 한정되어있다. 스크립트 체크는 제한이 없지만, 비트마스크 비교에 비해서는 무겁다. 하지만 일반적으로는 충분히 빠르므로 스크립트 체크를 쓰는 것도 괜찮다고 한다. 초당 만번 이상 GetComponenet 하는게 아니라면 성능상 문제가 없을 것 같다.
그리고 아이템 먹었을때 레벨업 되는것도 구현했는데, 레벨업을 level이 아니라 exp 기준으로 해야하지 않나 싶었다. 레벨업 하면 잔여 exp가 사라져버리는 구조여서 약간 수정이 필요할 것 같다.
이제 내일 ui 하고 모레 이펙트까지 하면 기본 구현은 끝이다!
아무래도 게임 수학을 먼저듣는게 좋을 것 같다! 게임수학을 듣다보면 다시 실습하고 싶을 것 같으니까 적당히 섞어서 들어야겠다.
'유니티' 카테고리의 다른 글
| 패스트캠퍼스 환급챌린지 19일차 : 한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지 강의 후기 (0) | 2025.11.30 |
|---|---|
| 패스트캠퍼스 환급챌린지 18일차 : 한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지 강의 후기 (0) | 2025.11.29 |
| 패스트캠퍼스 환급챌린지 16일차 : 한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지 강의 후기 (0) | 2025.11.27 |
| 패스트캠퍼스 환급챌린지 15일차 : 한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지 강의 후기 (0) | 2025.11.26 |
| 패스트캠퍼스 환급챌린지 14일차 : 한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지 강의 후기 (1) | 2025.11.25 |