작성
·
203
0
API 검색해보니까 bit마스크라고 그러던데
만일 어떤 레이어1을 표현하는 2진수가 101010이면
처리되는 오브젝트 검사해서 101010레이어에 속해 있으면
레이어에 포함된 거로 친다고 하면요,
~ 붙여서 010101로 바꿔버리면,
그래서
Physics.Raycast(startPoint, direction, out hit, fireDistance, ~101010(=010101)) 했다고 치면
010101 레이어에 속해 있는 오브젝트들만 반응해야 하는 거
아닌가요?? ~ 연산자가 정확히 어떻게 되는 거죠??
실제로는 101010이 아닌 레이어들 몽땅에게 적용되던데
비트 뒤집기라고 하면 010101인 레이어만 적용되어야 하는 거
아닐까요?
답변 1
0
유니티에서 레이어마스크가 동작하는 방식은, 한자리수 = 하나의 레이어로 동작하기 떄문입니다.
즉 101 이라고 하면,
- 100 레이어는 on
- 010 레이어는 off
- 001레이어는 on이 됩니다.
마찬가지로 111 이라고 하면
- 100 레이어는 on
- 010 레이어는 on
- 001레이어는 on이 됩니다.
따라서, 예를 들어 100 레이어만 on인, 100 레이어를 뒤집어 011로 할당하게 되면
- 100 레이어는 off
- 010 레이어는 on
- 001레이어는 on이 됩니다.