스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록

2024.07.05 TIL - 최적화, 현재 켜져있는 적 몬스터 객체들로 탐색 VS 범위 탐색

테크러너 2024. 7. 5.

현재 켜져있는 적 몬스터 객체들로 탐색

해당 프로젝트에서는 오브젝트 풀링으로 적 몬스터들을 관리하고 있다.

플레이어가 적을 탐지하여 해당 적에게 이동하기 위한 로직으로 썼던 첫 번째 방법은 현재 하이라키에 켜져있는 적 몬스터 객체들을 탐색하는 것이었다.

위의 영상에서 FPS를 보면 210~230정도 나온다.

이걸 인지해두고 다음으로 범위 탐색 방법을 보겠다.

 

 

 

범위 탐색

플레이어 기준으로 초기 반경 4.0f를 시작으로 적 몬스터를 감지할 때까지 점점 탐색 반경이 늘어난다.

2.0f씩 반경이 커지고 최대 반경은 10.0f로 설정했다.

최대 반경에 도달했는데도 찾지 못하면 다시 초기 반경의 값으로 셋팅된다.

그래서 영상을 보면 스폰된 몬스터가 나타나기 전 상황에서 최대 반경까지 갔다가 다시 초기 반경으로 돌아간다.

이후 몬스터가 스폰이 되고, 감지가 된 모습을 확인할 수 있다.

FPS가 210~230정도가 나온다.

위의 방법과 별 차이가 없다. 이유는 현재 스폰되는 몬스터 수가 10마리밖에 안된다.

스폰되는 몬스터 수가 늘어난다면 차이가 날 것이다.

 

 

현재 켜져있는 적 몬스터 객체들로 탐색 VS 범위 탐색

필자는 범위 탐색으로 로직을 변경했다.

이유는 탐색에서 그치는 것이 아니라 탐색한 몬스터들 중에 가장 가까운 몬스터에게 이동한다는 점을 고려했을 때!

현재 켜져있는 적 몬스터 객체들은 몬스터 수가 많아진다면 탐색할 객체 수가 많아진다.

범위 탐색은 해당 범위 안에 있는 몬스터들 수가 상대적으로 적다.

그래서 최적화 측면에서 봤을 때 범위 탐색 로직이 더 낫다고 판단했다.

반응형

댓글