Unity에서 충돌을 위해 설정된 두 개의 게임 오브젝트가 동일한 물리 공간을 차지할 때 충돌이 발생합니다. 충돌은 대부분의 게임과 많은 인터랙티브 애플리케이션 및 시뮬레이터에서 기초적인 부분입니다.
게임 오브젝트 사이의 충돌을 처리하기 위해 Unity에서는 콜라이더를 사용합니다. 콜라이더는 Unity 컴포넌트로, 물리적 충돌을 위해 게임 오브젝트의 셰이프를 정의합니다. 콜라이더는 눈에 보이지 않으며, 게임 오브젝트의 메시와 동일한 셰이프를 가질 필요는 없습니다.
게임 오브젝트에 컴포넌트를 추가하는 자세한 방법은 컴포넌트 사용을 참조하십시오.
각 3D 콜라이더는 상응하는 2D 콜라이더를 갖습니다. Unity에서는 2D 및 3D 물리가 서로 다른 물리 시뮬레이션 시스템에서 실행됩니다. 2D 물리 콜라이더에 대한 지침은 콜라이더 2D를 참조하십시오.
콜라이더 타입은 해당 게임 오브젝트의 Collider 및 Rigidbody 컴포넌트 설정을 기반으로 합니다. 이 설정에 따라 콜라이더의 동작 방식과 다른 콜라이더와의 상호작용 방식이 결정됩니다.
트리거 콜라이더라는 하위 타입의 콜라이더도 있습니다. 트리거 콜라이더는 다른 콜라이더와 물리적으로 충돌하지 않으며, 대신 다른 콜라이더가 트리거 콜라이더를 통과할 때 Unity가 함수를 호출합니다.
트리거 콜라이더는 충돌을 일으키지 않습니다. 대신, 트리거 콜라이더를 통과하는 다른 콜라이더를 감지하고 이벤트를 시작하는 데 사용할 수 있는 함수를 호출합니다. 자세한 내용은 충돌을 사용하여 다른 이벤트 트리거를 참조하십시오.
콜라이더를 트리거 콜라이더로 전환하려면 Collider 컴포넌트에서 Is Trigger 프로퍼티를 활성화합니다. 트리거 콜라이더는 다른 콜라이더와 충돌하지 않지만, 대신 다른 콜라이더가 트리거 콜라이더를 통과합니다.
트리거 콜라이더가 작동하려면 충돌에 관련된 하나 이상의 게임 오브젝트에 리지드바디가 있어야 합니다. 트리거 콜라이더는 모든 콜라이더 타입(정적 또는 리지드바디)이 될 수 있지만, 대부분의 경우 트리거 콜라이더를 정적 콜라이더로 만들고, 트리거를 통과하는 게임 오브젝트에 리지드바디를 추가하는 것이 좋습니다. 여러 게임 오브젝트가 하나의 트리거를 통과하는 경우 각 충돌 페어에서 하나 이상의 게임 오브젝트에 리지드바디가 있어야 합니다.
트리거는 모든 콜라이더 셰이프(콜라이더 셰이프 참조)가 될 수 있으며, 표시되거나 표시되지 않을 수 있습니다. 트리거를 보이지 않게 하려면 빈 게임 오브젝트에 콜라이더를 추가합니다. 다른 게임 오브젝트가 눈에 보이는 방식으로 통과해도 괜찮은 경우에만 보이는 게임 오브젝트에 트리거를 추가합니다.
게임플레이 및 시뮬레이션의 경우 플레이어가 트리거를 직관적으로 느낄 수 있도록 약간 조정해야 할 수 있습니다. 예를 들어 트리거 콜라이더가 연결되고 눈에 보이는 관련 게임 오브젝트보다 해당 콜라이더를 약간 더 크게 만들어 더 넓은 반경을 갖도록 실험해 볼 수 있습니다.
충돌 시 서로 다른 콜라이더 타입이 상호작용하는 방식에 대한 자세한 내용은 콜라이더 타입 간 상호작용을 참조하십시오.
Collider 컴포넌트는 다양한 셰이프 설정으로 사용할 수 있습니다. 콜라이더에는 세 개의 주요 셰이프 타입이 있습니다.
기본 콜라이더는 게임 오브젝트에 연결하고 거의 동일한 크기와 셰이프로 확대/축소할 수 있는 단순 빌트인 셰이프입니다. 여러 개의 기본 콜라이더 셰이프를 결합하여 복합 콜라이더를 만들 수도 있습니다. 메시 콜라이더는 게임 오브젝트의 메시와 셰이프가 정확히 일치합니다. 복잡한 셰이프에 대해 기본 콜라이더보다 정확하지만 더 많은 계산 리소스가 필요합니다. 휠 콜라이더는 물리 시뮬레이션된 휠이 있는 게임 내 항목(예: 차량)을 위한 레이캐스트 기반 콜라이더입니다. 빌트인 휠 물리와 마찰을 위한 컨트롤을 포함합니다.
콜라이더 표면의 마찰과 탄성을 제어할 수 있습니다. 두 개의 콜라이더가 만나면 물리 시스템은 각 표면의 프로퍼티를 사용하여 두 콜라이더 사이의 마찰과 탄성을 계산합니다.
자세한 내용은 콜라이더 표면을 참조하십시오.