Unity/Tip

두 Collider의 충돌을 무시하는 방법

코샵 2023. 11. 29. 12:33
반응형

Unity의 Physics.IgnoreCollision 메서드는 두 Collider 간의 충돌을 무시하도록 설정합니다.

public static void IgnoreCollision(Collider colliderA, Collider colliderB, bool ignore);

//Parameters
//colliderA: 충돌을 무시할 첫 번째 Collider
//colliderB: 충돌을 무시할 두 번째 Collider
//ignore: 충돌 감지 여부, 기본값은 true

 

 

예제

Collider collider1 = gameObject.GetComponent<Collider>();
Collider collider2 = otherObject.GetComponent<Collider>();

// 충돌을 무시합니다.
Physics.IgnoreCollision(collider1, collider2);

이 코드에서는 두 콜라이더간의 충돌을 무시합니다.

 

주의사항

Physics.IgnoreCollision 메서드는 다음과 같은 제한 사항이 있습니다.

  • Physics.IgnoreCollision 메서드는 충돌이 발생하기 전에 호출해야 합니다. 충돌이 이미 발생한 후에는 Physics.IgnoreCollision 메서드를 호출해도 충돌을 무시할 수 없습니다.
  • Physics.IgnoreCollision 메서드는 충돌이 발생하는 동안 한 번만 호출할 수 있습니다. Physics.IgnoreCollision 메서드를 여러 번 호출하면 마지막 호출의 설정이 적용됩니다.
  • Physics.IgnoreCollision 메서드는 GameObject Collider Static 속성 Trigger 속성에 영향을 미치지 않습니다. 따라서, Collider Static 속성이 true이거나 Trigger 속성이 true 경우 Physics.IgnoreCollision 메서드를 사용하여 충돌을 무시할 없습니다.

활용

Physics.IgnoreCollision 메서드는 다음과 같은 작업에 사용할 수 있습니다.

  • 두 Collider 간의 충돌을 방지합니다. 예를 들어, 캐릭터의 발과 바닥 사이의 충돌을 방지하여 캐릭터가 바닥에 붙어 있도록 할 수 있습니다.
  • 특정 종류의 충돌을 무시합니다. 예를 들어, 캐릭터의 몸과 다른 캐릭터의 몸 사이의 충돌은 무시하고, 캐릭터의 몸과 다른 오브젝트 사이의 충돌은 허용하도록 설정할 수 있습니다.

Physics.IgnoreCollision 메서드는 게임의 물리적 상호 작용을 보다 유연하게 제어하는 도움이 되는 중요한 기능입니다.