콜라이더 (Collider)
: 물리 충돌 처리를 위한 오브젝트의 형태물리 충돌 처리를 위한 오브젝트의 형태. 물리적 표면 존재
Trigger
👉 충돌한 물체를 밀어내는 물리적 표면이 없음
👉 다른 일반 콜라이더와 겹치거나 서로를 뚫고 지나갈 수는 있지만 충돌 자체는 감지
충돌한 두 게임 오브젝트의 콜라이더 중 최소 하나가 트리거 콜라이더라면 자동으로 실행된다. OnTrigger 계열의 메서드가 실행될 때는 메서드 입력으로 충돌한 상대방 게임 오브젝트의 콜라이더 컴포넌트가 Collider 타입으로 들어온다.
// 충돌한 순간
void OnTriggerEnter(Collider other){}
// 충돌하는 동안
void OnTriggerStay(Collider other){}
//충돌했다가 분리되는 순간
void OnTriggerExit(Collider other){}
자신이 트리거 콜라이더가 아니어도 충돌한 상대방 게임 오브젝트의 콜라이더가 트리거 콜라이더면 자신과 상대방 모두 OnCollision이 아닌 OnTrigger계열 충돌 이벤트 메서드가 실행된다.
Collision
일반적인 콜라이더를 가진 두 게임 오브젝트가 충돌할 때 자동으로 실행된다. 충돌한 두 콜라이더는 서로 통과하지 않고 밀어낸다. OnCollision 계열 메서드가 실행될 때는 메서드 입력으로 충돌 관련 정보가 Collision타입으로 들어온다.
// 충돌한 순간
void OnCollisionEnter(Collision collision){}
// 충돌하는 동안
void OnCollisionStay(Collision collision){}
//충돌했다가 분리되는 순간
void OnCollisionrExit(Collision collision){}
충돌할 오브젝트들이 Rigidbody를 가지고 있다면 오브젝트 모두 is Trigger은 언체크 되어있어야하고, 최소한 하나의 오브젝트는 is Kinematic이 꺼져있어야 한다.
❗️ Collision 타입은 충돌 관련 정보를 담아두는 단순한 정보 컨테이너이다. collision을 통해 충돌한 상대방 게임오브젝트, 충돌 지점, 충돌 표면의 방향 등을 알 수 있다 ❗️
참고 : 레트로의 유니티 게임 프로그래밍 에센스
반응형
'Programming > Unity' 카테고리의 다른 글
[유니티] 캐릭터 애니메이션 루프 (0) | 2021.02.10 |
---|---|
[유니티] 카메라 위치 이동 (0) | 2021.02.03 |
[유니티] 관성에 의한 쓰러짐 (4) | 2021.02.01 |
[Unity] 코루틴 (2) | 2021.01.19 |
[Unity] 오브젝트 라이프사이클 (0) | 2020.12.23 |