GetComponent() ๊ฐ ํด๋น ์ปดํฌ๋ํธ๊ฐ ์๋์ง ์๋์ง๋ฅผ bool๊ฐ์ผ๋ก ๋ฐํํ์์?
์ค๋ ๊ณต์๋ฌธ์์์ GetComponent๊บฝ์ ๋ง๊ณ ๊ดํธ๋ก ์ฐ๋๊ฒ๋ ์๊ธธ๋ ์ด๊ฑฐ ์ ์ฉํ ๊ฑฐ ๊ฐ์์ ์ ์ฉํด๋ดค๋๋ฐ
GetComponent(์ํ๋์ปดํฌ๋ํธ)๋ก ์ค๋ธ์ ํธ๋ง๋ค ์ํ๋ ์ปดํฌ๋ํธ๊ฐ ์๋์ง ์ฐ์ด๋ณด๋๊น
์ํ๋ ์ปดํฌ๋ํธ ๋ถ์ฐฉ๋์ด ์๋ ์ ๋ค์ true๋ก ๋จ๊ณ ์๋ ์ ๋ค์ false๋ก ์ ๋จ๋๋ผ๊ณ
๊ทธ๋์ ์ด๊ฑธ ์ฐ๋ฉด ์ค๋ธ์ ํธ๋ ํ๋ ์ด์ด๊ฐ ์ํธ์์ฉํ ๋
๊ตณ์ด ๋ ์ด์ด๋ ํ๊ทธ๋ก ๋๋์ง ์์๋ ์ํ๋ ์ปดํฌ๋ํธ๊ฐ ์๋์ง ์ฌ๋ถ ์ฐพ๊ณ
์์ผ๋ฉด ๊ฑฐ๊ธฐ์ ํด๋น๋๋ ๋์์ ์ํํ๋ฉด ์ค๋ธ์ ํธ๋ณ๋ก ํฝ์ , ์์ง, ๋ํ, ์์ ๋ฑ๋ฑ ํ๊ทธ ํ๋์ฉ ๋ง๋ค ํ์ ์์ด
'์์' ์คํฌ๋ฆฝํธ๊ฐ ์๋์ง ์๋์ง๋ง ํ์ธํ๊ณ ์์ผ๋ฉด ์์๋ก ํ๋ณํด์ ์์์ด๊ธฐ, ์์ผ๋ฉด ๋ค์ ์คํฌ๋ฆฝํธ ๊ฒ์ํด์ ํด๋น๋๋ ๋์ํ๊ฒ๋ง ํด์
๊ฐํธํ๊ฒ ๋ง๋ค์ด ๋จ๊ฑฐ๋ .
๊ทผ๋ฐ GetComponent()๊ฐ ๊ทธ๋ฅ if ((GetComponent(์คํฌ๋ฆฝํธ)) ๋ก ํ๋ฉด ์ ๋๋๋ฐ
๋ ์ด์บ์คํธ๋ ํฉ์ณ์ if (ray.collider || GetComponent(์คํฌ๋ฆฝํธ))๋ก ํ๋ฉด ํญ์ true๊ฐ ๋ธ.
||์ด๋ฉด ๋์ค์ ํ๋๋ง false์ฌ๋ if ๋ false๊ฐ ๋์ด์ผ ํ์ง ์์??
์ด ์ด๊ฒ ์ ์ด๋ ๊ฒ ๋์ง ์ถ์ด์ ๊ทธ๋ฅ
if (ray.collider) return;ย ย ย //๋ ์ด์ ๋ง์ ๋์์ด ์๋์ง ํ๋ฒ ๊ฑธ๋ฌ์ฃผ๊ณ
if (ray.collider.gameobject.GetComponent(์คํฌ๋ฆฝํธ)) return;ย ย ย //๋ ์ด์ ๋ง์ ์ ๋ค ์ค์ ์คํฌ๋ฆฝํธ ์๋์ง ์ฌ๋ถ ํ์ธ
์ด๋ ๊ฒ ๋๋๋๊น ์ด๋ฒ์ ์ ์๋ํจ.
์๋ ๋น๊ต์์ด ๋งฅ๋ฝ์๋ง๋ค ๋ค๋ฅด๊ฒ ํด์๋๋๊ฑฐ์?
์๋๋ค ๋ค์ ํ ์คํธํด๋ณด๋๊น if๋ฌธ๋ผ๋ฆฌ ํฉ์ณ๋๋ ์ ์๋ํ๋ค ๋ญ์ง ๋ ๊ท์ ์ธ๊ฐ
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
์ดํด์๋ฃ ใณใณ ์์ผ๋ก ๋์ฒดํฌ์ ์ ์ฉํ๊ฒ ์จ๋จน๊ฒ ์ด
์ ๊ทธ๊ฑฐ ๋์ถฉ ์จ์ ๋ณธ๋ฌธ์ ๋๋ฝ๋๊ฑฐ์์ด ใ ใ
null ์ฃฝ์ด๊ฒ ๋ค
ํ์คํ ์๋ค => GetComponent ์๋์ง ์๋์ง ๋ชจ๋ฅธ๋ค => TryGetComponent ๋ฌด์จ ํ์ ์ ๋ฐ์์ผํ๋์ง ์๊ณ ์๋ค => GetComponent ์ ๋๋ฆญ ๋ฐํ์์์ ๋ฌด์จํ์ ์ ๋ฐ์ ์ง ๊ฒฐ์ ํด์ ๋ฐ๋๋ค => GetComponent ํ์ /์คํธ๋ง, ์ปดํฌ๋ํธ ๋ฐํํ๋ฏ๋ก ์บ์คํ ํ์ํจ true false ์ฒดํฌ๋๋ ์ด์ ๋ ์๋์ ์๊ณ , ๋ณธ๋ฌธ ๋ด์ฉ์ or ์ฐ์ฐ์ด ์๋ and ์ฐ์ฐ์ ํด์ผํจ
ํ ๊ทธ๋ฌ๋ค ๋ ์ ์ํ์๊ฐ์ ์ญ์ด๋์ฐ ๊ฐ๋ฅด์น ๋ ์กธ์๋๊ฑธ๊น ํ์ฐฝ์์ ๋ก ๋์๊ฐ์ ๋ช ์น๋๋ฆฌ๊ณ ์ถ๋ค
์ฌ๊ฐํ๋ค
ใ ใ ์ด์ฌํํ๊ฒ ์ด..
ใ ใ ใ ใ ใ ใ