본문 바로가기
Programming/Unity

[Unity] 충돌호출 함수 OnTrigger와 OnCollision 사용법 및 차이

by 타임박스 2022. 9. 15.
반응형


✔ OnTrigger, OnCollision 함수 호출 설정 방법

차이점 비교, Collider 호출 함수



자주 사용하는 함수인데 한번씩 왜 함수가 동작을 안하지!?

하는 경우가 종종있다.

함수가 호출되기 위한 조건이 있는데 잊어버리기 쉽다.

먼저 두 이벤트의 차이부터 알아보자.

OnTriggerOnCollision 모두 유니티에서 충돌을 체크하기 위한 함수이다.

 

◆ 차이 비교

▶ OnTrigger

- isTrigger를 통해 물체간에 관통해야만함

(자동차가 물건을 부딪히고 물건이 날아가는게 불가능)

- 물리 연산을 하지 않는다 

- Collision 보다 연산이 적음

- 총알처럼 어떠한 물체와 부딪혔을때 사라지거나 텔레포트하거나 할때 활용

▶ OnCollision

- 물체 관통이 불가능

(말그대로 현실과 비슷함. 자동차가 물건을 부딪히면 물리적인힘으로 날아감)

- 물리 연산을 통하여 총돌처리를 하기 때문에 비교적 연산이 높음

- 레이싱이나 당구게임 등 물리적인 작용이 필요할때 활용

 

 함수가 호출되기 위한 설정 및 조건

OnTrigger OnCollision
Rigidbody  컴포넌트가 포함되어있어야한다. (충돌하는 두개의 오브젝트 중에서 최소 1개 이상)
Collider 컴포넌트가 포함되어있어야한다. (충돌하는 모든 오브젝트)
두 오브젝트가 충돌 시 둘중 하나는 Collider에 isTrigger 체크 필요 모든 충돌 대상 객체 Collider에 isTrigger 무조건 비활성화 
충돌하는 두 오브젝트 중에서 Rigidbody > IsKinematic 비활성화된 오브젝트가 하나라도 있어야함.

 

 주요 호출 함수

OnTrigger OnCollision 설명
OnTriggerEnter OnCollisionEnter 두 물체가 부딪혔을때 호출
OnTriggerStay OnCollisionStay 물체가 충돌 중인 경우 계속 호출
OnTriggerExit OnCollisionExit 물체가 Enter 후 빠져나갔을때 호출

 

감사합니다.

반응형

댓글