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 이름을 바꿨다면 서로 다를 수 있다.
그래도 안 된다면?
잠깐 쉬었다가 맑은 정신으로 다시 확인해보자.
반응형