Unity C#

Unity Collider Component 정리

Ms_Tony 2018. 7. 18. 00:22

[Collider Component]

  • 충돌을 감지하는 센서 역할을 하는 컴포넌트

  • Box, Sphere, Capsule, Mesh, Wheel, Terrain 의 형태 Collider 제공

  • Box Collider

    • 가장 다용도로 사용.

    • Center, Size 속성으로 박스 형태를 조절

  • Sphere Collider

    • 가장 속도 처리가 빠른 Collider.

    • Radius 속성으로 구체의 반지름을 조절

    • 정밀한 충돌 감지를 해야하는 경우를 제외하고서는 대부분 Sphere Collider 사용하는 것을 권장.


  • Capsule Collider

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

    • Height 속성으로 캡슐의 높이 조절 가능

    • Direction 속성은 Height 값을 변경했을 때 커지는 축을 설정. 기본 Y축.

  • Mesh Collider

    • CPU 부하가 가장 높은 Collider

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

    • 유니티에서는 Mesh Collider 간의 충돌 감지가 안되도록 기본값 설정.

      • 속도 저하를 방지하기 위함

      • Convex 속성을 체크하면 Mesh 간의 충돌 감지 가능하나, 단순 메쉬로 변경.


  • Wheel Collider

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

    • 바퀴의 서스펜션, 바닥과의 마찰저항과 미끄러지는 저항을 세밀하게 조절 가능.

  • Terrain Collider

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

    • 지형의 복잡도에 따라 Collider의 부하가 높아진다.

    • 로우폴리 Mesh를 이용해 Mesh Collider로 대체하는 것도 좋은 방법.

  • 충돌 감지 조건.

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

    • 두 게임오브젝트 중 움직이는 쪽에는 반드시 Rigidbody Component가 있어야한다.

  • 연산 처리 속도가 빠른 Collider

    • Sphere Collider > Capsule Collider > Box Collider

  • 충돌 이벤트.

    • Collider 컴포넌트를 포함한 게임오브젝트 간의 충돌이 발생할때 호출되는 이벤트.

    • 모든 Collider Component에는 IsTrigger 속성이 있다.

      • 이 속성을 체크할 경우 충돌은 감지되지만, 물리적인 충돌은 일어나지 않는다.

      • 주로 감지 센서 역할을 하는 게임오브젝트에서 많이 사용하는 속성.

    • void OnCollisionEnter

      • IsTrigger UnCheck했을 시,

      • 두 물체 간의 충돌이 일어나기 시작했을 때

    • void OnCollosionStay

      • IsTrigger UnCheck했을 시,

      • 두 물체 간의 충돌이 지속될 때

    • void OnCollisionExit

      • IsTrigger UnCheck했을 시,

      • 두 물체가 서로 떨어졌을 때

    • void OnTriggerEnter

      • IsTrigger Check했을 시,

      • 두 물체 간의 충돌이 일어나기 시작했을 때

    • void OnTriggerStay

      • IsTrigger Check했을 시,

      • 두 물체 간의 충돌이 지속될 때

    • void OnTriggerExit

      • IsTrigger Check했을 시,

      • 두 물체가 서로 떨어졌을 때


이해를 위해 Collider Component 이미지 첨부.

참고 자료
- https://docs.unity3d.com/kr/2017.4/Manual/class-BoxCollider.html
- https://docs.unity3d.com/kr/2017.4/Manual/class-SphereCollider.html
- https://docs.unity3d.com/kr/2017.4/Manual/class-MeshCollider.html
- https://docs.unity3d.com/kr/2017.4/Manual/class-CapsuleCollider.html