Unity 레이어 마스크 설정 가이드
이 문서에서는 Unity에서 레이어 마스크를 설정하고 사용하는 방법을 간단히 설명합니다. 레이어 마스크는 게임 오브젝트를 정리하고 물리 상호작용을 관리하는 데 매우 유용합니다.
레이어 마스크란?
레이어 마스크는 특정 레이어의 상태를 나타내는 이진 값입니다. 게임에서 물체의 상호작용을 정의할 때 매우 중요한 역할을 합니다. 예를 들어, 총알이 특정 레이어의 오브젝트와 만나는지 확인할 때 사용할 수 있습니다.
레이어 마스크 설정하기
1. Unity 에디터에서 레이어 마스크 설정
Unity에서는 LayerMask
클래스를 사용하여 레이어 마스크를 설정할 수 있습니다. 아래는 이를 설정하는 방법의 코드 예시입니다.
using UnityEngine;
public class LayerMaskExample : MonoBehaviour
{
[SerializeField] private LayerMask layermask;
}
[SerializeField]
속성을 사용하면 스크립트가 붙어 있는 오브젝트의 인스펙터 창에서 레이어 마스크를 설정할 수 있는 옵션이 제공됩니다.
2. 런타임 시 레이어 전환
런타임에 특정 레이어를 레이어 마스크로 변환하려면 아래와 같은 방식을 사용할 수 있습니다. 이 방법은 바이너리 왼쪽 시프트 연산자를 사용하여 1을 왼쪽으로 이동시키는 방식입니다.
using UnityEngine;
public class LayerExample : MonoBehaviour
{
[SerializeField] private int layer = 10;
private int layerAsLayerMask;
private void Start()
{
layerAsLayerMask = (1 << layer);
}
}
위의 코드에서 layer
변수에 저장된 값에 따라 해당 레이어를 레이어 마스크로 변환합니다.
레이어 마스크 사용 예시
용도 | 설명 |
---|---|
특정 레이어 객체 찾기 | Physics.Raycast를 사용하여 특정 레이어의 오브젝트에 레이저를 쏘는 기능 구현 |
충돌 처리 | OnCollisionEnter에서 특정 레이어와의 충돌만 감지하기 |
UI 요소 관리 | UI와 비 UI 요소의 레이어를 분리하여 각기 다른 상호작용 처리 |
캐릭터 상호작용 | 캐릭터가 적과 상호작용할 때 특정 레이어로 설정된 적만 확인할 수 있도록 필터링 |
추가 리소스
레이어 마스크에 대한 더 많은 정보는 Unity 공식 문서와 포럼에서 찾을 수 있습니다. 내용을 바탕으로 다른 기능이나 설정도 적용해보세요.
결론
레이어 마스크를 활용하면 게임에서 물리적 및 논리적 상호작용을 더욱 세밀하게 조정할 수 있습니다. 다양한 기능을 시도해 보면서 Unity의 가능성을 탐험해 보세요!