- 내배캠 꾸준별 실습에서 내적을 사용해서 시야각 내의 소행성을 검출해야하는 구현과제가 있었다.
- 근데 콜라이더도 없고, 딱히 레이를 사용하는 것도 아닌 것 같았다.
- 내적은 하겠는데 그래서 콜라이더 없이, ray없이 주변에 오브젝트를 어떻게 검출하는데?
Physics.OverlapSphere
- 일정거리내의 콜라이더를 검출해내는 함수
public static Collider[] OverlapSphere(Vector3 position, float radious, int layerMask=AllLayers, QueryTriggerInteraction=QueryTriggerInteraction.UseGlobal)
- 메모리를 할당하므로 대신 다른걸 사용하는게 좋다고 doc에 되어있다.
Physics.OverlapSphereNonAlloc
- 일정거리내의 콜라이더를 검출하는 함수
- collider 배열을 매개변수로 제공하면, 해당 배열에 collider를 저장해준다. 따라서 가비지를 생성하지 않는다.
- 하지만 정해진 배열을 넘어가는 수의 콜라이더는 검출하지 못한다는 문제를 갖고있다
public static int OverlapSphereNonAlloc(Vector3 position, float radious, collider[] result, int layerMask=AllLayers,QuerryTriggerInteraction interaction = QueryTriggerInteraction,UseGlobal)
'Unity&C# > Unity' 카테고리의 다른 글
[Unity] Tag와 Layer의 성능차이 (0) | 2024.10.28 |
---|---|
[Unity] Monobehaviour를 상속받지 않은 클래스에서 Coroutine 실행하기 (0) | 2024.10.20 |
[Unity] Resources.UnloadAsset() (1) | 2024.10.16 |
[Unity] Input system - multitap value issue (0) | 2024.10.15 |
[Unity 2D] Sprite Flip (0) | 2024.10.14 |