유니티 Layer 충돌 무시

Layer 충돌 무시 2가지 종류

1. 에디터 Project Setting을 이용하는 방법

2. 스크립트를 사용하는 방법


에디터 Project Setting을 이용하는 방법

무시하고 싶은 Layer간에 체크를 해제해준다.


스크립트를 사용하는 방법(Physics.IgnoreLayerCollision)

using UnityEngine;

public class CollisionManager : MonoBehaviour
{
    public void IgnoreCollision(string layer1, string layer2, bool ignore)
    {
        int layer1Index = LayerMask.NameToLayer(layer1);
        int layer2Index = LayerMask.NameToLayer(layer2);

        if (layer1Index == -1 || layer2Index == -1)
        {
            Debug.LogError("Invalid layer name provided.");
            return;
        }

        Physics.IgnoreLayerCollision(layer1Index, layer2Index, ignore);
    }
}
CollisionManager collisionManager = GetComponent<CollisionManager>();
collisionManager.IgnoreCollision("Player", "Enemy", true);  
collisionManager.IgnoreCollision("Player", "Obstacle", false);

Physics.IgnoreLayerCollision함수를 이용해서 Layer간의 충돌을 Ignore할 수 있다.

 

매개인자값으로  true면 layer간 충돌을 무시하고,false이면 충돌을 무시하지 않는다.