충돌 이벤트는 트리거되지 않은 두 개의 콜라이더가 접촉할 때 발생합니다.
충돌 이벤트의 사용 예시는 다음과 같습니다.
충돌 이벤트 작업에는 주로 다음 API 함수가 사용됩니다.
Collider.OnCollisionEnter
: 두 콜라이더가 처음 접촉하면 Unity가 각 콜라이더에서 이 함수를 호출합니다.Collider.OnCollisionStay
: 두 콜라이더가 접촉하는 동안 각 콜라이더에서 물리 업데이트마다 한 번씩 이 함수를 호출합니다.Collider.OnCollisionExit
: 두 콜라이더가 접촉을 중지하면 Unity가 각 콜라이더에서 이 함수를 호출합니다.충돌 이벤트의 경우 연관된 오브젝트 중 하나 이상에 동적 물리 바디(Is Kinematic이 비활성화된 리지드바디 또는 관절 바디)가 있어야 합니다. 충돌에 포함된 두 게임 오브젝트가 모두 키네마틱 물리 바디인 경우, 충돌은 OnCollision
함수를 호출하지 않습니다.
다음 예시는 Unity가 각 함수를 호출할 때 콘솔에 메시지를 출력합니다.
using UnityEngine;
using System.Collections;
public class DoorObject : MonoBehaviour
{
// "other" refers to the collider that is touching this collider
void OnColliderEnter (Collider other)
{
Debug.Log ("A collider has made contact with the DoorObject Collider");
}
void OnColliderStay (Collider other)
{
Debug.Log ("A collider is in contact with the DoorObject Collider");
}
void OnColliderExit (Collider other)
{
Debug.Log ("A collider has ceased contact with the DoorObject Collider");
}
}
OnCollision
이벤트에 대한 실제 적용 예시는 콜라이더 이벤트 스크립트 예시를 참조하십시오.