Unity에서는 Collider 컴포넌트를 사용하여 게임 오브젝트의 충돌 처리를 할 수 있습니다. 이번 글에서는 Collider 컴포넌트의 종류와 프로퍼티, 메서드를 자세하게 다루어 보겠습니다.
Collider 컴포넌트 종류
Box Collider
Box Collider는 박스 형태로 충돌을 처리하는 컴포넌트입니다. 박스의 크기와 중심 위치를 조절할 수 있으며, 회전은 불가능합니다.
Sphere Collider
Sphere Collider는 구 형태로 충돌을 처리하는 컴포넌트입니다. 구의 반지름과 중심 위치를 조절할 수 있으며, 회전은 불가능합니다.
Capsule Collider
Capsule Collider는 원통 형태로 충돌을 처리하는 컴포넌트입니다. 원통의 반지름, 높이, 방향, 중심 위치를 조절할 수 있으며, 회전은 불가능합니다.
Mesh Collider
Mesh Collider는 복잡한 모양의 충돌을 처리하는 컴포넌트입니다. 게임 오브젝트의 메쉬를 그대로 사용하여 충돌을 처리합니다. Mesh Collider는 Mesh Renderer 컴포넌트가 필요합니다.
Terrain Collider
Terrain Collider는 지형의 충돌을 처리하는 컴포넌트입니다. Terrain 컴포넌트가 필요합니다.
Wheel Collider
Wheel Collider는 바퀴의 충돌을 처리하는 컴포넌트입니다. 바퀴의 반지름과 두께, 마찰 계수 등을 조절할 수 있으며, 회전은 가능합니다.
Collider 컴포넌트 프로퍼티
Collider.enabled
Collider 컴포넌트의 활성화 여부를 나타내는 bool 값입니다. false로 설정하면 충돌 처리가 이루어지지 않습니다.
Collider.isTrigger
Collider 컴포넌트가 트리거로 동작하는지 여부를 나타내는 bool 값입니다. true로 설정하면 충돌 처리가 이루어지지 않고, OnTriggerEnter 등의 이벤트가 발생합니다.
Collider.material
Collider 컴포넌트의 물리적 특성을 나타내는 PhysicMaterial입니다. 이 속성을 사용하면 충돌 시 생기는 마찰력, 반발력 등을 조절할 수 있습니다.
Collider.bounds
Collider 컴포넌트가 차지하는 공간을 나타내는 Bounds입니다. 이 속성을 사용하면 Collider 컴포넌트의 영역을 쉽게 파악할 수 있습니다.
Collider 컴포넌트 메서드
Collider.ClosestPoint
Vector3 ClosestPoint(Vector3 position);
주어진 위치에서 Collider 컴포넌트와 가장 가까운 점의 위치를 반환합니다.
Collider.Raycast
bool Raycast(Ray ray, out RaycastHit hitInfo, float maxDistance);
주어진 Ray와 충돌하는지 검사합니다. 충돌한 경우, RaycastHit에 정보를 저장하고 true를 반환합니다.
Collider.RaycastAll
RaycastHit[] RaycastAll(Ray ray, float maxDistance);
주어진 Ray와 충돌하는 모든 Collider의 정보를 반환합니다.
Collider.ClosestPointOnBounds
Vector3 ClosestPointOnBounds(Vector3 position);
주어진 위치에서 Collider 컴포넌트의 경계와 가장 가까운 점의 위치를 반환합니다.
Collider.GetContacts
int GetContacts(ContactPoint[] contacts);
Collider와 충돌한 모든 ContactPoint를 배열에 저장하고, 충돌한 ContactPoint의 수를 반환합니다.
'Unity' 카테고리의 다른 글
Unity Navigation Component - 네비게이션 (0) | 2023.03.25 |
---|---|
Unity 스크립터블오브젝트 : ScriptableObject (0) | 2023.03.24 |
Unity 수학 함수 Mathf (0) | 2023.03.22 |
Unity에서 오일러각과 쿼터니언 (0) | 2023.03.21 |
Unity에서 게임 오브젝트 회전하는 방법 (0) | 2023.03.19 |