관리 메뉴

도드넷

9. 유니티 충돌 OnTriggerEnter OnCollisionEnter 본문

창고/게임 제작

9. 유니티 충돌 OnTriggerEnter OnCollisionEnter

도드! 2018. 3. 5. 12:30
반응형






유니티 OnTriggerEnter OnCollisionEnter 에 대하여


정의

- "A와 B가 충돌하면..."

- "A가 B지역에 들어가면..."

을 구현하는 함수


사용법


1. 객체에 콜라이더를 추가한다.


2. Rigidbody를 추가한다.

충돌 정보를 담는 컴포넌트로 충돌 자체 구현은 콜라이더만으로 가능하지만

그 정보를 담으려면 RB를 넣어줘야 합니다.


3. 스크립트에 다음함수를 기호에 맞게(?) 이용한다.


void OnTriggerEnter(Collider MyCol){ } - 들어감
void OnTriggerExit(Collider MyCol){ } - 나감


void OnColliderEnter(Collider MyCol) {} - 들어감

void OnColliderExit(Collider MyCol) {} - 나감


* Tip1 : 트리거는 비물리, 콜라이더는 물리 충돌을 의미한다


* Tip2 : Collider MyCol은 충돌시 발생하는 데이터를 담을 콜라이더다.

(어떤 물체가 감지됬는지 구분하는 방법은 여러가지가 있지만

MyCol.gameObject.tag 를 if로 검사하는 방법이 가장 쉽다.)


4. 충돌할 객체에도 콜라이더를 추가해준다.

- 스크립트상 OnTriggerEnter 같은 함수를 사용할것이 아니라면

Rigidbody는 생략해도 좋다.




OnTriggerEnter / OnTriggerEnter 이 안돼요

- 같은 콜라이더 함수가 작동이 안된다? 


1. Rigidbody가 없음

>> 정보를 가져올수없음


2. Layer 설정이 잘못됨

>> Edit > ProjectSettings > Physics 에서 콜리젼 메트릭스 확인





반응형
Comments