Unity 레이어와 레이어 마스크
개요
Unity에서 모든 게임 오브젝트는 단일 레이어에 존재합니다. 하지만 API는 레이어를 직접 사용하지 않고 레이어 마스크를 사용하여 영향을 미치는 레이어를 설정할 수 있습니다.
용어 정리
- 레이어: 게임 오브젝트가 포함되는 표준 정수 값.
- 레이어 마스크: 비트마스크 형식의 정수로, 포함할 레이어는 1, 제외할 레이어는 0으로 표현됩니다.
레이어 마스크 이해하기
레이어 마스크는 레이어를 비트 조작으로 관리합니다. 예를 들어, 레이어 9에 있는 게임 오브젝트에 대해 레이캐스트를 수행할 때, 레이어 마스크로 9를 사용하는 것은 내부적으로 레이어 3과 0에 대해 레이캐스트를 수행하게 됩니다. 이는 레이어 9의 이진 표현인 00001001에서 3과 0의 자리에서 1이 존재하기 때문입니다.
예시
레이어 9에 대해 레이캐스트를 호출할 때 다음과 같이 진행할 수 있습니다:
// 레이어 9에 있는 게임 오브젝트에 레이캐스트를 수행
Physics.Raycast(ray, out hit, layerMask: 9);
레이어 마스크 설정 방법
레이어 마스크의 설정 및 조작 방법에 대한 자세한 내용은 다음 링크에서 확인할 수 있습니다: - 레이어 마스크 설정 - 레이어 마스크에 레이어 추가 - 레이어 마스크에서 레이어 제거 - 레이어 기반 충돌 감지
추가 리소스
리소스 | 링크 |
---|---|
레이어 마스크 설정 | 링크 |
레이어 마스크에 레이어 추가 | 링크 |
레이어 마스크에서 레이어 제거 | 링크 |
레이어 기반 충돌 감지 | 링크 |
참고 사항
Unity API를 사용할 때 레이어와 레이어 마스크는 동일한 기본 타입을 사용하기 때문에 스크립트는 정상적으로 컴파일됩니다. 하지만 API 호출은 기대하는 동작과 일치하지 않을 수 있으므로 주의가 필요합니다.
Copyright © 2022 Unity Technologies. Publication 2022.3
결론
Unity에서 레이어와 레이어 마스크의 이해는 충돌 감지 및 게임 오브젝트의 관리에 중요합니다. 따라서 필요에 따라 적절히 설정하고 활용할 수 있어야 합니다.