게임에서 충돌 감지는 매우 중요한 요소 중 하나다. 유니티는 충돌 감지를 위해 다양한 Collider 컴포넌트를 제공한다. Collider 컴포넌트는 충돌을 감지하는 일종의 센서라고 생각하면 이해하기 쉽고, 다음과 같이 여러 형태로 제공하다.

모양과 기능에 따라 Box, Sphere Capsule, Mesh, Wheel, Terrain 등이 있다

 

충돌 감지 조건

충돌을 일으키는 양쪽 게임오브젝트에는 모두 Collider 컴포넌트가 추가돼 있어야 한다.

두 게임오브젝트 중 움직이는 쪽에는 반드시 Rigidbody 컴포넌트가 있어야 한다.

사방의 벽인 Wall에는 기본적으로 Collider가 들어 있으나 Bullet에는 Rigidbody만 있고  Collider는 안들어 있다 . AddComponent로 Box Collider를 추가해준다.

박스가 총알에 비해 크므로 좀 줄여준다.

플레이 해보면 총알이 벽에 튕기는 걸 볼수 있다.

 

Collision action matrix

두 객체가 충돌하면 충돌하는 객체의 강체 구성에 따라 다양한 스크립트 이벤트가 발생할 수 있습니다. 아래 차트는 개체에 연결된 구성 요소를 기반으로 호출되는 이벤트 함수에 대한 세부 정보를 제공합니다. 일부 조합은 두 오브젝트 중 하나만 충돌의 영향을 받지만 일반적인 규칙은 Rigidbody 구성 요소가 첨부되지 않은 오브젝트에는 물리가 적용되지 않는다는 것입니다.

충돌 감지가 발생하고 충돌 시 메시지가 전송됩니다. 리지드바디는 트리거가 아닌 콜라이더와 반응한다.

  Static Collider Rigidbody Collider Kinematic Rigidbody Collider Static Trigger Collider Rigidbody Trigger Collider Kinematic Rigidbody Trigger Collider
Static Collider   Y        
Rigidbody Collider Y Y Y      
Kinematic Rigidbody Collider   Y        
Static Trigger Collider            
Rigidbody Trigger Collider            
Kinematic Rigidbody Trigger Collider            

트리거 메시지는 충돌 시 전송됩니다. 트리거는 트리거끼리 반응하는것 같다.

  Static Collider Rigidbody Collider Kinematic Rigidbody Collider Static Trigger Collider Rigidbody Trigger Collider Kinematic Rigidbody Trigger Collider
Static Collider         Y Y
Rigidbody Collider       Y Y Y
Kinematic Rigidbody Collider       Y Y Y
Static Trigger Collider   Y Y   Y Y
Rigidbody Trigger Collider Y Y Y Y Y Y
Kinematic Rigidbody Trigger Collider Y Y Y Y Y Y

+ Recent posts