게임 개발 공부/Unity

LayerMask를 이용한 Layer 비교(feat.충돌 처리)

CalebHong 2024. 5. 9. 14:35

유니티에서 제공하는 LayerMask를 통해 해당 레이어와 오브젝트의 레이어를 비교한 뒤 충돌 처리를 하고자 한다.

 

LayerMask는 레이어 전체 또는 다수의 레이어를 선택할 수 있는 Flag 이기 때문에 단순 비교연산자 '==' 으로 비교할 수 없으며, 비트 연산자 '&' 를 사용해야 한다.

 

using UnityEngine;

public class LayerMaskSample : MonoBehaviour
{
    public LayerMask targetLayerMask;

    private void OnTriggerEnter(Collider other)
    {
        if ((targetLayerMask & (1 << other.gameObject.layer)) != 0)
        {
            // 충돌 처리
            ...
        }
    }
}