if (Physics.Raycast(ray, out hitInfo,ย float.MaxValue, 1 << LayerMask.NameToLayer("ํน์ ๋ ์ด์ด") ))
์ด ์ฝ๋์์
1 << LayerMask.NameToLayer("ํน์ ๋ ์ด์ด")
์ ํํ๊ฒ ์ด๊ฒ ๋ฌด์จ ์๋ฏธ์?
์๋์ ํน์ ๋ ์ด์ด์๋ง ๋ ์ด์บ์คํธ๊ฐ ๋ถ๋ชํ๋ค๋๊ฑด ์๊ฒ ๋๋ฐ
1์ transparentfx๋ก ๊ธฐ๋ณธ๊ฐ์ด์์ด.
๋์ฒด ๋ฌด์จ ๋ง์?
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
๊ทธ๋๊น 1<<? ์ฌ๊ธฐ์ ์ซ์1๊ณผ << ์ด๊ฒ ๋ญ๊ฑฐ์
์ค๋ช ๋๋ฌด ๊ฐ์ฌํ๋ฐ ๊ทธ๋๋ ๋จธ๋ฆฌ์์๋ ๋ฌผ์ํ ๋ฟ์ ใ ใ ๊ฑ ์ธ์์ผ์ง
๋ง์คํน์ธ๊ฐ? 1์ 000000001 ์ด๋ฐ์์ด๊ณ <<๋ฅผ ํด์ ์ฌํํธ ์ํค๋๊ฑด๋ฐ ์ ๊ฑธ ์ด์ฉํด์ 00000010 000000100 00001000 ์ด๋ฐ์์ผ๋ก ๋ฐ๊ฟ์ ์์ด. ํ๋์ ๋ณ์๋ก ์ฌ๋ฌ๊ฐ์ง ์กฐ๊ฑด์ ํ๋จํ ์ ์๊ฒ ํ๋๊ฑฐ. ์ ๊ฑธ ์ด์ฉํ๋ฉด ํต๊ณผ์ํฌ ๋ ์ด์ด๋ฅผ ์ฌ๋ฟ ์ง์ ๋ ๊ฐ๋ฅ ๊ทผ๋ฐ ์์จ๋ณธ์ง ์ค๋๋์ ์ ํํ ๊ณ์ฐ์์ ๋ชจ๋ฅด๊ฒ ๋ค.
๊ณ ๋ง์์ฉ
๋จผ์ <<์ ๊ฒฝ์ฐ ์ํํธ ์ฐ์ฐ์์. ์ด๊ฒ ๋ญ๋ง์ด๋ํ๋ฉด x << 3 ํ๋ฉด x์ 2์ง์ ๊ฐ๋ค์ 3๋ฒ ์ผ์ชฝ์ผ๋ก ๋ณด๋ธ๋ค๋ผ๋ ์๋ฏธ ์ฆ 17์ 2์ง์ ๊ฐ์ด 0001 0001์ธ๋ฐ, ์ด๊ฑธ 17 << 3 ๋กํ๋ฉด 1000 1000 ์ด๋ ๊ฒ๋จ. ์ด๋ ๋งจ๋ค๋ ๊ทธ๋ฅ 0์ ๊ณ์ ๋ถ์ฌ์ค
LayerMak์์๋ 2์ ์น์ Index๊ฐ ์๋, ๊ฐ ์์ฒด๋ฅผ ์ ๋ ฅ๋ฐ์(2^10์ ๊ฒฝ์ฐ 10์ด ์๋, 1024๋ฅผ ์ ๋ ฅ)
๋ง์ฝ ๋๊ฐ Monster ๋ ์ด์ด๋ฅผ 8๋ก ๋์๊ณ , ๋ชฌ์คํฐ๋ฅผ ํฅํด ๋น์ ์์๋ ๊ฒ์ถํ๊ณ ์ถ๋ค? ๊ทธ๋ฌ๋ฉด monsterLayer = 256; ์ด๊ฑธ Raycast์ ๋ฃ๋๊ฐ, 1<<8 ์ ๋ฃ๋๊ฑฐ์ง 0000 0001์ 8๋ฒ ์ํํธ ๋ ํํธ๋ฅผํ๋ฉด 1 0000 0000 ๊ฐ์ด ๋์ค๊ณ ์ด๊ฑธ 10์ง์๋ก ๋ณํํ๋ฉด 256