Unity/기능

[Unity] OverlapBox 와 OverlapBoxNonAlloc

turbulence93 2025. 7. 3. 20:30

주제

물리 범위 체크 시 OverlapBox와 OverlapBoxNonAlloc의 메모리 처리 방식 차이


핵심 차이점

항목 OverlapBox OverlapBoxNonAlloc
반환 방식 새 배열 생성하여 반환 기존 배열에 결과 저장
GC 할당 있음 (매번 배열 생성) 없음 (사전 할당된 배열 사용)
성능 느릴 수 있음 더 빠르고 안정적
사용 편의성 간편 미리 배열을 준비해야 함

정리

  • Physics.OverlapBox()는 간편하지만 GC 할당이 발생 → 반복 사용 시 성능 저하 가능
  • Physics.OverlapBoxNonAlloc()은 사전 할당된 배열을 사용 → GC 없이 빠르고 안정적인 처리 가능
  • 반복 호출이 예상되는 경우엔 사전에 메모리 할당이 미리 필요하다는 번거로움이 있지만
  • NonAlloc 방식으로 교체하는 것이 실전 퍼포먼스에 도움

느낀 점

  • 물리 계산 로직 자체는 동일하지만,
    최적화를 위해 GC 비용을 줄이기 위해서는 NonAlloc을 적극 활용하는 것이 좋다고 생각한다.
  • 물론 메모리를 미리 할당하고 크기를 미리 정해줘야 하는등 번거로움과 수고로움은 있지만,
    그런만큼 성능면에서 리턴이 확실하다고 생각한다.
  • 특히 오브젝트 탐색 등 반복적인 범위 체크에는 OverlapBoxNonAlloc을 사용하면 최적화에 큰 도움이 될것이다.

 

'Unity > 기능' 카테고리의 다른 글

[Unity] 오브젝트 풀링 구현하기  (1) 2025.07.08
[Unity] 제네릭 메서드  (0) 2025.07.07
[Unity] Rigidbody - MovePosition  (0) 2025.07.01
[Unity] 전역 using 사용하기  (0) 2025.06.30
[Unity] BoxCast와 OverlapBox의 차이점  (1) 2025.06.26