구 콜라이더
속성
Material | 충돌체가 서로 어떻게 상호작용 하는지 결정하는 Physic Material에 대한 참고 자료. |
Is Trigger | 만일 활성화 되면, 이 충돌체(Collider)는 트리거 이벤트로 사용되고, 물리엔진(physics engine)은 무시할 것 입니다. |
- 출처: 유니티코리아위키 (CC BY-NC-SA 2.0)
Radius | 콜라이더의 크기. |
Center | 오브젝트의 지역 공간에서 콜라이더의 위치. |
Details
충돌체(Colliders)는 리지드바디(Rigidbodies)와 함께 Unity에서 물리를 재현하기 위해 작동합니다. 리지드바디는 오브젝트가 물리력에 지배하에 있게 하는 반면, 충돌체는 오브젝트가 서로 충돌할 수 있게 해 줍니다. 충돌체는 리지드바디와는 별도로 오브젝트에 추가되어야 합니다. 충돌체에 리지드바디가 반드시 부착되어야 하는 것은 아니지만, 해당 오브젝트가 충돌의 결과로써 움직이려면 _반드시_ 리지드바디가 부착되어야 합니다.
두 충돌체 사이에 충돌이 발생하고 그 중 적어도 하나에 리지드바디가 부착되어 있다면, 거기에 부착된 오브젝트에 3개의 충돌 메시지세 개의 충돌 메시지 가 전송됩니다. 이러한 이벤트들은 스크립트에서 처리할 수 있고, 사용자가 내장 NVIDIA PhysX을 가지고 있거나 가지고 있지 않을 경우 각각 고유한 작동을 생성할 수 있게 해 줍니다.
충돌체를 사용하는 또 다른 방법은 트리거(Trigger
), 로 표시하는 것이며, 이는 그저 인스펙터에서 IsTrigger 속성 체크상자를 체크하면 됩니다. 트리거(Triggers)는 물리 엔진이 효과적으로 무시하고, 트리거와 함께 충돌이 발생하면 고유한 세트의 3개의 충돌메시지 (three trigger messages)을 전송합니다. 트리거는 사용자 게임에서 cutscenes, 자동 문 개방, 안내 메시지 표시 등의 다른 이벤트를 트리거 하는 데 유용하다. 당신의 상상력을 발휘해 보길 바랍니다.
두 개의 트리거(Triggers)가 충돌 시 트리거 이벤트를 전송하려면, 그 중 하나는 역시 리지드바디(Rigidbody)를 포함하여야 함을 주지하기 바랍니다. 트리거가 일반 충돌체와 충돌하려면, 그 중 하나에는 리지드바디가 부착되어야 합니다. 여러 다른 타입의 충돌에 대한 자세한 표를 보려면, 아래 고급(Advanced) 단원에 충돌 동작표를 참조합니다.
Compound Colliders
복합 충돌체(Compound Colliders)는 기본(primitive) 충돌체의 조합으로, 합쳐서 하나의 단독 충돌체로써 동작합니다. 이는 사용자가 충돌에서 복잡한 메쉬(mesh)를 사용하고 싶으나 Mesh Collider
을 사용할 수 없을 때 유용합니다. 복합 충돌체를 생성하려면, 사용자의 충돌하는 오브젝트에 자식(child) 오브젝트를 생성하고, 그리고 각 자식 오브젝트에 기본 충돌체를 추가합니다. 이렇게 하면 각 충돌체를 다른 것과 독립하여 위치, 회전 및 확장할 수 있습니다.
현실 세계의 복합 충돌체(Compound Collider) 설치
위 그림에서, 환경에 메쉬 충돌체(Mesh Collider)가 부착되어 있습니다. 메쉬 충돌체는 지형(terrain)이나 불규칙적인 모양으로 된 주변환경 메쉬에 최적입니다. gun_model 게임오브젝트(GameObject)에는 리지드바디(Rigidbody)와 여러 기본 충돌체가 게임오브젝트의 자식으로 부착되어 있습니다. 이 기본 충돌체는 환경의 메쉬 충돌체와 충돌하고, 부모 리지드바디는 여기에 적용된 힘과 자식 충돌체가 다른 충돌체와 씬(Scene)에서 상호작용하는 방법을 바탕으로 이들이 움직이는 방식을 변경합니다.
메쉬 충돌체(Mesh Colliders)는 일반적으로 서로 충돌하지 않습니다. 만일 메쉬 충돌체가 Convex로 표시되어 있다면, 그러면 이는 다른 메쉬 충돌체와 충돌합니다. 일반적인 해결책은 움직이는 모든 오브젝트에 대한 기본 충돌체를 사용하고, 정적이 배경 오브젝트에는 메쉬 충돌체를 사용합니다.
- 출처: 유니티코리아위키 (CC BY-NC-SA 2.0)
Hints
오브젝트에 여러 개의 충돌체(Colliders)를 추가하려면, 자식 게임오브젝트(GameObjects)을 생성하고 그 각자에 충돌체를 부착합니다. 이렇게 하면 각 충돌체(Collider)을 독립적으로 조종할 수 있습니다.
- 충돌체가 사용자의 오브젝트 상에서 어떻게 계산되지는 지를 보려면 사용자는
Scene View
에서 기즈모(gizmo)을 보면 됩니다. - 충돌체는 오브젝트의 규모에 최대한 맞추려고 합니다. 사용자가 일정하지 않은 규모를 가졌다면(각 방향으로 다른 규모), 메쉬 충돌체(Mesh Collider)만이 완전히 이를 맞출 수 있습니다.
- 사용자가 오브젝트를 트랜스폼(Transform) 컴포넌트 사이로 움직이지만 메시지를 충돌/트리거 메시지를 수신하고 싶다면, 사용자는 움직이는 오브젝트에 리지드바디(Rigidbody)를 부착하여야 합니다.
- 출처: 유니티코리아위키 (CC BY-NC-SA 2.0)
- 폭발을 생성하려면, 수많은 드레그를 포함한 리지드바디 하나와 구 콜라이더를 여기에 추가하여, 이것이 부딪히는 벽에서 약간 밀려나오도록 하게 하면 매우 효과적입니다.
- 출처: 유니티코리아위키 (CC BY-NC-SA 2.0)