콜라이더 충돌 검사 : Physics.Overlap vs NonAlloc

2024. 1. 5. 10:36·Unity/Tip
반응형

Unity의 Physics.Overlap[콜라이더이름] 메서드는 지정된 영역 내에서 콜라이더와 충돌하는 GameObject를 찾는 데 사용되는 메서드입니다. 이 메서드는 다음과 같은 두 가지 버전이 있습니다.

  • 일반 버전: 이 버전은 충돌하는 GameObject의 배열을 반환합니다.
  • NonAlloc 버전: 이 버전은 충돌하는 GameObject의 참조를 반환합니다.

OverlapSphere() VS OverlapSphereNonAlloc() 

  Physics.OverlapSphere() Physics.OverlapSphereNonAlloc()
메모리 사용량 새로운 배열을 할당하여 결과를 반환 기존 배열을 사용하여 결과를 반환
성능 메모리 할당 및 해제 과정이 추가되어 성능이 저하될 수 있음 메모리 할당 및 해제 과정이 없기 때문에 성능이 향상될 수 있음
사용법 새로운 배열을 생성하여 결과를 저장해야 함 기존 배열을 사용하여 결과를 저장할 수 있음

Physics.OverlapSphere() 메서드는 지정된 반경 내의 충돌하는 오브젝트의 목록을 반환합니다. 이 메서드는 결과를 저장하기 위해 새로운 배열을 할당합니다. 따라서 메모리 사용량이 증가하고 성능이 저하될 수 있습니다.

 

Physics.OverlapSphereNonAlloc() 메서드는 지정된 반경 내의 충돌하는 오브젝트의 목록을 반환합니다. 이 메서드는 결과를 저장하기 위해 기존 배열을 사용합니다. 따라서 메모리 사용량이 감소하고 성능이 향상될 수 있습니다.

 

다음은 두 메서드의 사용 예입니다.

// Physics.OverlapSphere() 메서드 사용 예
int numColliders = Physics.OverlapSphere(position, radius);
Collider[] colliders = new Collider[numColliders];
Physics.OverlapSphere(position, radius, colliders);

// Physics.OverlapSphereNonAlloc() 메서드 사용 예
Collider[] colliders = new Collider[10];
int numColliders = Physics.OverlapSphereNonAlloc(position, radius, colliders);

첫 번째 예에서는 Physics.OverlapSphere() 메서드를 사용하여 새로운 배열을 생성하고, 그 배열에 결과를 저장합니다. 두 번째 예에서는 Physics.OverlapSphereNonAlloc() 메서드를 사용하여 기존 배열을 사용하여 결과를 저장합니다.

 

일반적으로 Physics.OverlapSphereNonAlloc() 메서드를 사용하는 것이 더 효율적입니다. 하지만 기존에 할당된 배열이 없다면 Physics.OverlapSphere() 메서드를 사용해야 합니다.

저작자표시 비영리 변경금지 (새창열림)

'Unity > Tip' 카테고리의 다른 글

Unity 코드 문서화 : summary 태그 활용  (3) 2024.04.26
뷰포트 영역 안에 있는지 검사하는 방법  (1) 2024.03.21
유니티의 메타(meta) 파일은 무엇인가?  (1) 2023.12.22
AssetDatabase 클래스를 사용하여 스크립트에서 에셋 생성 및 수정  (0) 2023.12.21
Unity에서 패키지의 버전을 변경하는 방법  (0) 2023.12.17
'Unity/Tip' 카테고리의 다른 글
  • Unity 코드 문서화 : summary 태그 활용
  • 뷰포트 영역 안에 있는지 검사하는 방법
  • 유니티의 메타(meta) 파일은 무엇인가?
  • AssetDatabase 클래스를 사용하여 스크립트에서 에셋 생성 및 수정
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    rtsp
    codingtips
    스크립트 실행
    appdevelopment
    list
    셀레니움
    스크립트 실행 순서
    C#
    programming101
    카페24리뷰이관
    Python
    긴유통기한우유
    유니티
    라떼우유
    리뷰이관
    codingcommunity
    쇼핑몰리뷰
    상품 리뷰 크롤링
    리스트
    카페24리뷰
    파이썬
    devlife
    unity
    ipcamera
    리뷰관리
    learntocode
    cv2
    programmerlife
    믈레코비타멸균우유
    스마트스토어리뷰
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
콜라이더 충돌 검사 : Physics.Overlap vs NonAlloc
상단으로

티스토리툴바