Unity

[Unity] 충돌 안될 때 확인할 것 (rigidbody, collision, trigger)

푸드듥 2022. 8. 2. 16:46
반응형

두 오브젝트 간 충돌(접촉)을 처리할 때

분명 잘 만든 것 같은데 충돌이 안 일어난다면?

 

다음을 잘 지켰는지 확인해보자.

 

1. 두 오브젝트에 모두 collider 컴포넌트가 붙어있다.

 

2. 둘 중 하나에는 rigidbody 컴포넌트가 붙어있다.

- 참고로 body type이 Kinematic이어도 상관없다.

 

3. 오브젝트에 붙어있는 collider, rigidbody가 게임의 디멘션에 대응한다.

- 2D 게임이라면 collider2D, rigidbody2D를 사용해야 한다.

 

4. 스크립트에서 충돌을 다루는 함수(OnCollisionEnter, OnTriggerEnter 등)를 포함하였다.

 

5. 스크립트에 있는 함수가 게임의 디멘션에 대응한다.

- 2D 게임이라면 OnCollisionEnter2D, OnTriggerEnter2D 등을 사용해야 한다.

 

 

이것으로도 문제가 해결이 안 된다면?

아래 내용도 확인해보자.

 

 

1. OnCollisionEnter/OnTriggerEnter 등의 함수가 적힌 스크립트가, 대상 오브젝트에 적용되어 있다.

 

2. trigger를 사용한 경우, 대상 오브젝트에 is trigger가 체크되어 있다.

 

3. 스크립트 파일의 이름과, 스크립트 안에 적힌 class의 이름이 동일하다.

- 중간에 스크립트 파일명이나 class 이름을 바꿨다면 서로 다를 수 있다.

 

그래도 안 된다면?

잠깐 쉬었다가 맑은 정신으로 다시 확인해보자.

반응형