다음 예시는 충돌 함수에서 이벤트를 호출하는 방법을 보여 줍니다. 각각 OnCollisionEnter
와 OnTriggerEnter
를 사용하지만, 개념은 모든 OnCollision
및 OnTrigger
함수에 적용됩니다.
이름이나 태그 등 다른 콜라이더 관련 게임 오브젝트의 프로퍼티에 따라 다른 이벤트를 트리거하도록 스크립트를 설정할 수 있습니다. 예를 들어 일부 콜라이더는 이벤트를 생성하도록 허용하고 다른 콜라이더는 허용하지 않으려는 경우에 유용합니다.
다음 예시에서는 이 콜라이더에 접촉한 다른 콜라이더의 태그가 ’Player’인지 ’Enemy’인지에 따라 다른 메시지를 출력합니다.
using UnityEngine;
using System.Collections;
public class DoorObject : Monobehaviour
{
private void OnCollisionEnter(Collider other)
{
if (other.CompareTag("Player"))
{
Debug.Log ("The player character has touched the door.")
}
if (other.CompareTag("Enemy"))
{
Debug.Log ("An enemy character has touched the door!")
}
}
}
다음 예시에서는 트리거 콜라이더를 사용하여 호버패드를 생성합니다. 트리거 콜라이더는 호버패드 게임 오브젝트 바로 위에 위치하며, 트리거 내의 모든 게임 오브젝트에 위쪽으로 상수 힘을 가합니다.
using UnityEngine;
using System.Collections;
public class HoverPad : MonoBehaviour
{
// define a value for the upward force calculation
public float hoverForce = 12f;
// whenever another collider is in contact with this trigger collider…
void OnTriggerStay (Collider other)
{
// …add an upward force to the Rigidbody of the other collider.
other.rigidbody.AddForce(Vector3.up * hoverForce, ForceMode.Acceleration)
}
}