Unity OnTrigger를 이용해 충돌체크
- 프로그래밍/유니티
- 2022. 11. 18.
250x250
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 크기 변경.
콜라이더의 크기를 렌더링된 모델보다 더 크게 설정하면 오브젝트끼리 충돌하지 않아도 충돌함을 확인할 수 있었음.