본문 바로가기
  • 불확실한 내일을 위해
유니티 C#/C#

C#기초 - isTrigger에 따른 OnCollision함수와 OnTrigger함수

by 그린초코 2024. 4. 30.

isTrigger은 오브젝트 컴포넌트 중 콜라이더에 있는 기능이다.

선택하면 충돌 시 통과하지만 충돌은 감지할 수 있고, 선택하지 않으면 통과하지 않고 충돌이 일어난다. 

 

isTrigger이 체크되어 있지 않은 상태에서 충돌할 때 호출되는 함수는 OnCollision 함수고, 종류는 아래와 같다.

OnCollisionEnter() : isTrigger가 비활성화일 때, 충돌이 발생한 순간 호출 

OnCollisionStay() : isTrigger가 비활성화일 때, 충돌이 지속되는 동안 호출

OnCollisionExit() : isTrigger가 비활성화일 때, 충돌이 끝나는 순간 호출

 

isTrigger이 체크되어 있을 때 충돌할 때 호출되는 함수는 OnTrigger 함수고, 종류는 아래와 같다.

OnTriggerEnter() : isTrigger가 활성화일 때, 충돌이 발생한 순간 호출

OnTriggerStay() : isTrigger가 활성화일 때, 충돌이 지속되는 동안 호출

OnTriggerExit() : isTrigger가 활성화일 때, 충돌이 끝나는 순간 호출

 

이때 OnCollisionStay나 OnTriggerStay함수는 무한정으로 호출되지는 않고 오브젝트에 변화가 없으면 호출이 중단된다.

따라서 충돌하는 동안 계속 감지하고 싶은 경우 위 함수보다는 Update 함수와 함께 사용하는 것이 좋다. 

 

참고 : OnCollisionEnter을 이용하여 점프 구현  https://greenchoco.tistory.com/227

 

C#기초 - 스페이스바 점프 구현하기 (Getkey, Addforce함수)

스페이스바를 눌렀을 때 오브젝트가 점프할 수 있도록 하는 방법은 어렵지 않다. 1. 오브젝트가 떨어지지 않게 땅 오브젝트 (Plane)을 추가해준다.1. 플레이 할 플레이어 오브젝트에 Rigidbody 컴포

greenchoco.tistory.com

 

728x90

댓글