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




오늘은 몬스터 생성과 이동에 대해 배웠다.
몬스터 데이터를 json에서 읽어오고, 그 데이터를 이용해 몬스터를 소환한다.
json에서 읽어오는 방식은 저번과 동일하게 JsonUtility.FromJson을 사용했다.
그리고 몬스터는 플레이어 기준으로 원형으로 생성되어야 했는데, 그 위치를 정할때는 Random.insideUnitCircle.normalized를 사용했다. 이렇게 하면 호 안의 랜덤 Vector2 위치를 반환한다. 저번에 Random 관련해서 조사할때 조사했던 내용인데 여기서 써볼 수 있어서 좋았다.
생성된 몬스터는 플레이어쪽으로 움직인다. 타겟위치 Vector3 - 현재 내 위치 Vector3 하면 내 위치에서 상대위치를 바라보는 방향벡터가 생성된다. 이 방향으로 몬스터가 움직이도록 하고, 저번과 동일하게 Quaternion.RotateTowards을 사용해 부드러운 회전을 구현했다.
근데 코드가 많아지니까 복잡도가 올라가는건 맞는데, 너무 헷갈려서 코드를 다시 뜯어보니 클래스 책임분리가 살짝 안되어있는 것 같다.
예를들면 최대 스폰 몬스터 개수와 현재 스폰 몬스터 개수를 FSMStateProgress에서 관리하고 있는데, 이걸 SpawnManager에서 관리하면 나중에 코드 수정이 필요할때 찾아가기가 쉽지 않을까? FSMStateProgress랑 스폰 개수가 상관이 없는데 왜 여기서 관리하는 걸까 싶었다. 근데 지금 수정해버리면 다음 강의부터 따라가기가 어려워지니까 이대로 둬야할 것 같긴 한데, 코드가 여기저기 널려있으니까 문제가 발생했을때 확인해야할 곳이 너무 많다. 4일 정도면 뱀서라이크 기본 구현이 끝나기는 하는데 확장구현도 있어서... 그것까지 하고 리팩토링해야할 것 같다. 확장 구현은 강의듣는데 8일정도 걸릴 듯...
'유니티' 카테고리의 다른 글
| 패스트캠퍼스 환급챌린지 17일차 : 한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지 강의 후기 (0) | 2025.11.28 |
|---|---|
| 패스트캠퍼스 환급챌린지 16일차 : 한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지 강의 후기 (0) | 2025.11.27 |
| 패스트캠퍼스 환급챌린지 14일차 : 한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지 강의 후기 (1) | 2025.11.25 |
| 패스트캠퍼스 환급챌린지 13일차 : 한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지 강의 후기 (0) | 2025.11.24 |
| 패스트캠퍼스 환급챌린지 12일차 : 한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지 강의 후기 (1) | 2025.11.23 |