문자열로 레이어 지정
gameObject.layer = LayerMask.NameToLayer("Player");
레이어 마스크(Layer Mask)
LayerMask -1 = Everything
LayerMask 0 = Nothing
LayerMask 1 = Default
NameToLayer로 마스크 설정
playerMask = LayerMask.GetMask("Player"); //플레이어 마스크 지정
//playerMask = 1 << LayerMask.NameToLayer("Player");
monsterMask = LayerMask.GetMask("Monster"); //몬스터 마스크 지정
//monsterMask = 1 << LayerMask.NameToLayer("Monster");
GetMask에서 내부적으로 NameToLayer를 이용하여 레이어마스크를 구해줌
2개 이상 LayerMask 지정
playerMask = 1 << LayerMask.NameToLayer("Player");
monsterMask = 1 << LayerMask.NameToLayer("Monster");
layerMask = playerMask | monsterMask;
특정 LayerMask 빼기
playerMask = LayerMask.GetMask("Player");
monsterMask = LayerMask.GetMask("Monster");
//플레이어 마스크만 제외
layerMask &= ~playerMask;
//2개이상 제외
layerMask &= ~(playerMask | monsterMask);
playerMask
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
monsterMask
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
playerMask | monsterMask
0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
~(playerMask | monsterMask) (모든 비트 반전)
1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
layerMask
0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
layerMask &= ~(playerMask | monsterMask) (양쪽 비트가 모두 1일때만 true)
0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |
'유니티' 카테고리의 다른 글
[Unity] Rigidbody 날아가는 궤적 그리기 (0) | 2023.02.26 |
---|---|
[Unity] Material Property Block 사용하여 배칭시키기 (0) | 2023.02.20 |
[Unity] 서로 이어지는 이펙트 만들기 (2D) (0) | 2023.01.29 |
[Unity] Json Utility : 유니티에서 Json 읽기 쓰기 (0) | 2022.03.15 |
[Unity] Awake Start Coroutine 상속 (0) | 2022.03.12 |