그만해!!
gameObject.layer == 레이어의 인덱스
LayerMask.value == 2진수로 표현된 레이어의 인덱스?? (뭐라 표현하란 말인가)
//이글에선 편의상 LayerMask에서 바로.value하지만
//실제론 LayerMask 변수를 선언하고 그 변수에서 .value해야함.
예시 만약 4번째 인덱스를 골랐다면
gameObject.layer == 4;
LayerMask.value == 10000;
0번째라면
gameObject.layer == 0;
LayerMask.value == 1;
뭐 대충 이렇다....
int temp = 1<< 4; 이건 이제 10000가 된다
즉 4번째 layerMask.value와 비교 연산하기에 용이하게 쓸수있다
temp는 4번째 레이어와만 검사하라는 의미가 되겠지
(참고로 -n을 하면 n번째 레이어만 무시하라는거다..)
temp = 1<< LayerMask.NameToLayer("we"); 뭐 이렇게해서 "we" 레이어하고만 충돌 검사를 시킬수도 있다 하드코딩은 안 좋다고하니깐..
강의중 나왔던 코드.... 위에 말한대로 이야기해주면
levelCollsionLayer가 3번 인덱스이고 충돌한것이 2인덱스 레이어라면
(1000 == (1000 | (1<< 2))) 이런식이다..
이해를 돕기위해 아래에 사진을 올려둔다
틀린게 있으면 지적해주세요.. 수정하게..
댓글
댓글 쓰기