그만해!!

 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))) 이런식이다..

이해를 돕기위해 아래에 사진을 올려둔다




틀린게 있으면 지적해주세요.. 수정하게..




댓글

이 블로그의 인기 게시물

1/29

오늘의 til

메모