์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด 2D ์ฏ๊พธ๋ฅด ํ๋ซํผ์์ ๋นจ๊ฐ์ ์์ญ์์ ํ๋ ์ด์ด๊ฐ ์์ผ๋ฉด Bool์ด true๊ฐ ๋๋๋ก ๋ง๋ค๊ณ ์ถ์ต๋๋ค.
๊ทธ๋์ trigger๊ธฐ๋ฅ์ ํตํ์ฌ ๋ค์๊ณผ ๊ฐ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค์ด ๋นจ๊ฐ์์์ญ coponent์ ์ถ๊ฐํ์์ต๋๋ค.ย (์ด๋ก์์ ๋ฒฝ)
ย
void OnTriggerEnter2D(Collider2D collider)
ย ย {
ย ย ย ย if (collider.gameObject.tag == "Player")
ย ย ย ย {
ย ย ย ย ย ย Debug.Log("์์ญ์ ์ง์ ํ์์ต๋๋ค");
ย ย ย ย ย ย man_light = true;
ย ย ย ย }
ย ย {
ย ย ย ย if (collider.gameObject.tag == "Player")
ย ย ย ย {
ย ย ย ย ย ย Debug.Log("์์ญ์ ์ง์ ํ์์ต๋๋ค");
ย ย ย ย ย ย man_light = true;
ย ย ย ย }
ย ย }
ย ย void OnTriggerExit2D(Collider2D collider)
ย ย {
ย ย ย ย if (collider.gameObject.tag == "Player")
ย ย ย ย {
ย ย ย ย ย ย Debug.Log("์์ญ์ ๋ฒ์ด๋ฌ์ต๋๋ค");
ย ย ย ย ย ย man_light = false;
ย ย ย ย }
ย ย {
ย ย ย ย if (collider.gameObject.tag == "Player")
ย ย ย ย {
ย ย ย ย ย ย Debug.Log("์์ญ์ ๋ฒ์ด๋ฌ์ต๋๋ค");
ย ย ย ย ย ย man_light = false;
ย ย ย ย }
ย
๊ทธ๋ฐ๋ฐ trigger๊ธฐ๋ฅ์ ์ด์ฉํ๋ ํ๋ ์ด์ด๊ฐ ์์ง์ผ๋๋ง๋ค Enter์ Exit๊ธฐ๋ฅ์ด ํ๋ฒ์ฉ ์ค์ ๋๊ณ
ย
๋นจ๊ฐ์์์ญ์์ ์ค๊ฐ์์ย ์๋ฅผ ๋๋ฅด๋ฉด ๋ฒฝ๋๋ฌธ์ ํ๋ ์ด์ด๋ ๊ฐ๋งํ ์์ง๋ง ๋๋ฒ๊ทธ์๋ Exit๊ฐ ๋ฐ์๋์๋ค๊ณ ๋ํ๋ฉ๋๋ค (ํ๋ ์ด์ด์ ๋ฒฝ ๊ตฌํ์ raycast๋ฅผ ์ด์ฉํ์์ต๋๋ค.)
ย
์ด๋ฌํ ์ด๋ฒคํธ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์๋ ์ด๋ ํ ํจ์๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ์ผ ํ๋์?ใ
ใ
ใ
ย
์์ง ์ด๋ณด์์ฌ์ ์ด๊ฒ์ ๊ฒ ๋ง์ด ํค๋งค๊ฒ ๋ฉ๋๋ค. ๊ณ ์๋๋ค์ ๋ต๋ณ ๋ถํ๋๋ฆฝ๋๋คใ
ใ
ย
P.S ๋นจ๊ฐ์์ญ์ Boxcollider์์ญ์์ ํ๋ ์ด์ด์ Boxcollider๊ฐ ๊ฒน์ณ์ง๋ฉด ์ด๋จ๊น ์๊ฐ์ค์ธ๋ฐ ์ด๋ ํ ํจ์๋ฅผ ์ด์ฉํด์ผํ๋์ง ๊ฐํผ๋ฅผ ๋ชป์ก๊ฒ ์ต๋๋ค. ๊ตฌ๊ธ๋ง์์๋ trigger์๊ธฐ ๋ฟ์ด๋ค์ใ
ใ
ํธ๋ฆฌ๊ฑฐ์คํ ์ดใฑใฑ