Unity OnTrigger를 이용해 충돌체크

Unity OnTrigger를 이용해 충돌체크

안녕하세요.

오늘은 유니티에서 OnTrigger를 이용해 충돌체크를 해보겠습니다.

  • 오브젝트 구성.
  • 결과확인.

오브젝트 구성.

OnTrigger = 두 오브젝트가 물리 연산을 하지 않고 충돌하려 할때 사용됩니다.

OnTriggerEnter = 오브젝트가 처음 충돌하는 순간에 호출.

OnTriggerStay = 오브젝트가 충돌하고 있는동안 매 프레임마다 호출.

OnTriggerExit = 오브젝트가 충돌에서 벗어났을 때 호출. 

*조건.

# 두 오브젝트가 모두 Collider를 가지고 있어야 함.

# 두 오브젝트 중 하나의 오브젝트가 RigidBody구성요소를 가지고 있어야 함.

# 두 오브젝트 중 하나가 Collider의 Trigger가 활성화 되어있어야 함.

대충 오브젝트는 큐브 두개만 넣고 한개의 큐브에만 

스크립트와 RigidBody를 추가해주었습니다.

나머지 하나의 큐브에는 Collider의 Trigger를 활성해주었습니다.

스크립트는 그냥 간단하게 충돌한 오브젝트 이름+ (Enter / Stay / Exit)로 만들었습니다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Trigger : MonoBehaviour
{
    private void OnTriggerEnter(Collider other)
    {
        Debug.Log(other+"Enter");
    }
    private void OnTriggerStay(Collider other)
    {
        Debug.Log(other+"Stay");
    }
    private void OnTriggerExit(Collider other)
    {
        Debug.Log(other+"Exit");
    }
}

실행

실행결과 Cube오브젝트에 충돌시켰을때 Enter는 한번만 불러오고 Stay는 계속 불러오는 것을 확인할 수 있었습니다.

충돌한 오브젝트가 나가니까 Exit가 출력되며 Stay가 더이상 출력되지 않습니다.

# Collider 크기 변경.

콜라이더의 크기를 렌더링된 모델보다 더 크게 설정하면 오브젝트끼리 충돌하지 않아도 충돌함을 확인할 수 있었음.

 

Designed by JB FACTORY