현재 켜져있는 적 몬스터 객체들로 탐색
해당 프로젝트에서는 오브젝트 풀링으로 적 몬스터들을 관리하고 있다.
플레이어가 적을 탐지하여 해당 적에게 이동하기 위한 로직으로 썼던 첫 번째 방법은 현재 하이라키에 켜져있는 적 몬스터 객체들을 탐색하는 것이었다.
위의 영상에서 FPS를 보면 210~230정도 나온다.
이걸 인지해두고 다음으로 범위 탐색 방법을 보겠다.
범위 탐색
플레이어 기준으로 초기 반경 4.0f를 시작으로 적 몬스터를 감지할 때까지 점점 탐색 반경이 늘어난다.
2.0f씩 반경이 커지고 최대 반경은 10.0f로 설정했다.
최대 반경에 도달했는데도 찾지 못하면 다시 초기 반경의 값으로 셋팅된다.
그래서 영상을 보면 스폰된 몬스터가 나타나기 전 상황에서 최대 반경까지 갔다가 다시 초기 반경으로 돌아간다.
이후 몬스터가 스폰이 되고, 감지가 된 모습을 확인할 수 있다.
FPS가 210~230정도가 나온다.
위의 방법과 별 차이가 없다. 이유는 현재 스폰되는 몬스터 수가 10마리밖에 안된다.
스폰되는 몬스터 수가 늘어난다면 차이가 날 것이다.
현재 켜져있는 적 몬스터 객체들로 탐색 VS 범위 탐색
필자는 범위 탐색으로 로직을 변경했다.
이유는 탐색에서 그치는 것이 아니라 탐색한 몬스터들 중에 가장 가까운 몬스터에게 이동한다는 점을 고려했을 때!
현재 켜져있는 적 몬스터 객체들은 몬스터 수가 많아진다면 탐색할 객체 수가 많아진다.
범위 탐색은 해당 범위 안에 있는 몬스터들 수가 상대적으로 적다.
그래서 최적화 측면에서 봤을 때 범위 탐색 로직이 더 낫다고 판단했다.
'스파르타 게임개발종합반(Unity) > TIL - 본캠프 매일 공부 기록' 카테고리의 다른 글
2024.07.09 TIL - StringBuilder, List 메모리 단편화 (0) | 2024.07.09 |
---|---|
2024.07.08 TIL - Rule Tile (0) | 2024.07.08 |
2024.07.04 TIL - 유니티 시네머신 개요 (0) | 2024.07.04 |
2024.07.03 TIL - 캐릭터 컨트롤러 VS Rigidbody (0) | 2024.07.03 |
2024.07.02 TIL - Circle VS Box VS Capsule Collider 충돌 연산량 비교 (0) | 2024.07.02 |
댓글