본문 바로가기

프로그램 공부/Unity 컴포넌트

Collider

: 충돌을 감지

 

 

-Collider 종류

1) Box Collider

박스 형태의 Collider.

Edit Collider 씬뷰에서 직접 Collider 크기를 조절
Is Trigger 충돌을 감지만 하는가? (체크==true -> 물리적 충돌은 발생×)
Material (Physic Material) 물리와 관련된 Material을 받음 (ex. 탄성도)
Center Collider 위치 조정
Size Collider 크기 조절

 

2) Sphere Collider

구체 모양의 Collider.

가장 속도 처리가 빠른 Collider.

Radius 구체의 반지름 조절

 

3) Capsule Collider

캡슐 모양의 Collider.

주로 인체, 나무, 가로등 과 같은 모델의 충돌체로 많이 사용.

Height 캡슐의 높이 조절
Direction Height 속성 값을 변경했을 때 커지는 축을 설정.

 

4) Mesh Collider

대상의 형태로 감싸주는 Collider.

충돌 감지를 위한 CPU 부하가 가장 높은 Collider.

아주 세밀한 충돌 감지에 사용.

유니티에는 Mesh Collider 간의 충돌 감지가 되지 않도록 기본값이 설정되어 있는데, 이는 속도 저하를 방지하기 위함.

Convex 체크 == Mesh Collider의 충돌 감지 활성화
Mesh 해당 게임오브젝트를 넣어 대상의 형태인 Collider 생성

 

5) Wheel Collider

차량의 바퀴에 사용할 목적으로 제공되는 Collider.

 

6) Terrain Collider

유니티에 내장된 Terrain Engine을 이용해 지형에 적용되는 Collider.

지형의 복잡도에 따라 Collider의 부하가 높아지는데, 이럴때는 로우폴리 Mesh를 이용해 Mesh Collider로 대체하는 것도 좋은 방법이다.

 

 

-충돌 감지 조건

1) 충돌을 일으키는 양쪽 게임오브젝트 모두 Collider 컴포넌트가 있어야 한다.

2) 두 게임오브젝트 중 움직이는 쪽에는 반드시 Rigidbody 컴포넌가 있어야한다.

 

 

-충돌 발생 이벤트 함수

함수명 호출 조건 Is Trigger 옵션
void OnCollisionEnter 두 물체 간의 충돌이 일어나기 시작했을 때  
void OnCollisionStay 두 물체 간의 충돌이 지속될 때  
void OnCollisionExit 두 물체가 서로 떨어졌을 때  
void OnTriggerEnter 두 물체 간의 충돌이 일어나기 시작했을 때
void OnTriggerStay 두 물체 간의 충돌이 지속될 때
void OnTriggerExit 두 물체가 서로 떨어졌을 때

'프로그램 공부 > Unity 컴포넌트' 카테고리의 다른 글

Image  (0) 2019.06.28
Character Controller  (0) 2019.06.13
파티클 시스템 (Particle System)  (0) 2019.05.25
Rigidbody  (0) 2019.05.23
Transform  (0) 2019.05.23