유니티 3D

Physics클래스 검출 형태

ruripanda 2024. 12. 21. 02:41

OverlapBox

OverlapBoxNonAlloc 박스형

 

OverlapCapsule

OverlapCapsuleNonAlloc 캡슐형

 

OverlapShphere

OverlapShphereNonAlloc 원형

 

뒤에 NonAlloc가 붙어있는 건 탐지하는 갯수가 정확히 갯수가 정해졌을때 사용하는 것으로

전체적인 사용예)는 아래 문장을 참조

 

Physics.OverlapSphere(원점, 반지름, 검출 대상 레이어)

 

원점을 기준으로 주변의 반지름거리를 구한 뒤 지정된 레이어를 구한다

 

사용 예)

Collider[] colls = Physics.OverlapSphere(pos, radius, 1 << 3);

 

콜라이더를 배열로 지정해서 콜들을 받는다 =

Physics.OverlapSphere

(pos는 중심점,

radius는 중심점을 기준으로 반지름,

1 << 3은 3번 레이어를 확인한다

 

위 코드는 갯수를 확인할 수 없을때 사용하고

 

갯수가 정확할 때는

Physics.OverlapSphereNonAlloc()

를 사용한다

 

사용예

//결과값을 저장할 정적 배열을 미리 선언
Collider[] colls = new Collider[10];

void IndirectDamage(Vector3 pos)
{
	Physics.OverlapSphereNonAlloc(pos, radius, colls, 1 << 3);
    
    foreach(var coll in colls)
    {
    	//폭발 범위에 포함된 오브젝트의 컴포넌트 추출
        rb = coll.Getcomponent<Rigidbody>();
        //감지 대상의 무게를 가볍게 함
        rb.mass = 1.0f;
        //freezeRotation 제한 해제
        rb.constraints = RigidbodyConstraints.None;
        //튕김 전달
        rb.AddExplosionForce(1500.0f, pos, radius, 1200.0f);
        }
    }
}

 

 

검색어 유입)

원점, 반지름, 탐지, 원형, 박스, 박스형, 캡슐, 캡슐형

'유니티 3D' 카테고리의 다른 글

Terrain(테레인)  (0) 2025.04.04
사정거리 표시  (0) 2024.12.23
유니티 충돌 이벤트  (0) 2024.12.20
네비메시AI 신형(유니티6)  (1) 2024.10.19