์ฝ๋ฆฐ์ด์ธ๋ฐ ์ฐพ์๋ด๋ ๋ชจ๋ฅด๊ฒ ์ด์ ์ง๋ฌธ ๋จ๊ฒจ์..
์ธํฐํ์ด์ค๋ฅผ ์ด์ฉํ ์ํธ์์ฉ์ ๋ง๋ค์ด๋ณด๋ ์ค์ธ๋ฐ, ๋งํ๋ ๊ณณ์ด ์๊ฒผ์ต๋๋ค.ย
๊ตฌ์กฐ๋ ์๋ ์ต๋๋ค
IInteractable interactable = collider.GetComponent.<IInteractable>();
ํ๋ ์ด์ด์ ์ฝ๋ผ์ด๋์ ์ํธ์์ฉ์ด ๊ฐ๋ฅํ ์์ดํ
์ด ๋ค์ด์ค๋ฉด ๊ฐ์ง๋ ์ค๋ธ์ ํธ์ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ ธ์ต๋๋นย
๊ทธ๋ฆฌ๊ณ ํค๋ฅผ ์ ๋ ฅํด์ ์ธํฐํ์ด์ค์ ํจ์๋ฅผ ์คํํ๋๋ก ํ๋๋ฐ, ๋ฌธ์ ๊ฐ..
์ธํฐํ์ด์ค๋ฅผ ์ด์ฉํด์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ํด๋์ค์ ๋ณ์๊ฐ์ ์ฐธ์กฐํ ์ ์๋๊ฐ? ์์ต๋๋ค.
์์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ํด๋น ํด๋์ค์ ์ ๊ทผํ๊ฑฐ๋, ์ธํฐํ์ด์ค์ ํด๋์ค์ ๋ ๋ฒ ์ ๊ทผํ๊ณ ์ถ์ง ์์์ ์ด๋ฐ ๊ณ ๋ฏผ์ ํ๊ฒ ๋์์ต๋๋ค.ย
1. ์ํธ์์ฉย ์คํ ์กฐ๊ฑด ์ค์, ์ธํฐํ์ด์ค ๊ตฌํ ํด๋์ค๊ฐ ์ง๋๋ย int fire๋ณ์๊ฐ์ดย 0 ์ด์์ด์ด์ผ ํ๋ ๊ฒ์ด ์์ต๋๋ค.ย
๋์ ์์ดํ ์ int fire์ดย 0 ์ด์์ด๋ฉด, ํค๋ฅผ ์ ๋ ฅํด์ ์ธํฐํ์ด์คย ํจ์๋ฅผ ์คํํ ์ ์์ต๋๋ค.ย
๋ฐ๋ก ํด๋น ํด๋์ค ์ปดํฌ๋ํธ๋ฅผ ๋ฐ์์ค์ง ์๊ณ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ธํฐํ์ด์ค ๊ตฌํ ํด๋์ค์ ๋ณ์๋ฅผ ์ฐธ์กฐํ ์ ์์๊น์?
ํ์ฌ๋ int fire ๋ณ์๋ฅผ ์ง๋ย ์ถ์ ํด๋์ค๋ฅผ ์์๋ฐ์ผ๋ฉด์, IInteractable์ ๊ตฌํํ๋, ์์ดํ
ํด๋์ค๋ฅผย ๋ง๋ค์ด์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.ย
๊ทธ๋์ ์ถฉ๋ํ ์์ดํ
์ ์ถ์ ํด๋์ค ๋ณ์๋ฅผ ์ฐธ์กฐํด์ ์กฐ๊ฑด์ ํ์ ํ๊ณ ์ฐธ์ผ ๋ ํค๋ฅผ ์
๋ ฅํ๋ฉด ์ธํฐํ์ด์ค์ ํจ์๋ฅผ ์คํํฉ๋๋ค.
(ํจ์๋ ์์ดํ
ํด๋์ค์ย ํ๋ ์ด์ด ํด๋์ค์ ๋ณ์๋ฅผ ์์ ํ๊ณ ์ดํํธ๋ฅผ ์ฌ์ํฉ๋๋ค.)
2.ย ์ธํฐํ์ด์ค๋ฅผ ์ด์ฉํ ์ด์ -๋ฌธ ์ํธ์์ฉ
๋ชจ๋ ์ํธ์์ฉ์ ์ธํฐํ์ด์ค๋ก ์ฒ๋ฆฌํ๊ณ ์์ต๋๋ค.ย ๊ทธ๋์ ์ด์ ์ ํ๋๊ณผ ๋ฌธ ์ด๊ธฐ ๋ ๋ค ์ธํฐํ์ด์ค ํจ์๋ก ๊ตฌํ๋ฉ๋๋ค.ย
๋ฌธ ์ด๊ธฐ๋ ํฐ ๋ฌธ์ ๊ฐ ์๋๋ฐ, ์ด์ ๋ฅผ ํ๋ํ ๋ ์๋ฌธ์ ์ด ์์ต๋๋ค.ย
์ด์ ๋ฅผ ํ๋ํ ๋ย ํค๋ฅผ ์ ๋ ฅํ๋ฉด ์ธํฐํ์ด์ค์ ํจ์๊ฐ ์คํ๋๊ณ , ํด๋น ํจ์๋ ์ด์ ์ ID๊ฐ์ ํ๋ ์ด์ด์๊ฒ ์ ์กํด ๋ฆฌ์คํธ์ ์ ์ฅํ๊ณ ํ๋ฆฌํน์ย ๋นํ์ฑํํฉ๋๋ค.ย
์ด ๊ณผ์ ๋ ์์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ทธ๋ฅ ์ด์ ๊ฐ ์ผํ ๊ฒ ์์ด ํ๋ ์ด์ด๊ฐ ํด๋์ค์ ์ง์ ์ ๊ทผํด์ ๋ณ์๋ฅผ ๊ฐ์ ธ์ค๋๊ฒ ๋ ํจ์จ์ ์ด์ง ์๋? ์ถ์์ต๋๋ค.ย
์ด ์ ๊ทผ๋ฒ์ด ๋ง์๊น์? ์ ๋ ๋ญ๊ฐ ๋ชน์ ์๋ชป๋์๋ค๊ณ ์๊ฐ์ด ๋๋๋ฐ ์ ์งํ๊ฑฐ๋ ๋ช๋ช ์ํธ์์ฉ์ ํํด์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ ์ธ์๋ ๋์ฑ
์ด ๋ ์ค๋ฅด์ง ์์ต๋๋ค... ์ธํฐํ์ด์ค์ ์ฅ์ ์ ์ ๋๋ก ์ด๋ฆฌ์ง ๋ชปํ๋ ๊ตฌ์กฐ๋ฅผ ๋ง๋ ๊ฒ ์๋๊ฐ ์ถ๋ค์ใ
ใ
๊ธด ๊ธ ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋น
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
ํ ์์ธํ ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค! ์ด๋ฒคํธ์ชฝ๋ ๊ณต๋ถํด ๋ด์ผ๊ฒ ๋ค์
๊ทธ๋ฅ as๋ก ํ๋ณํ ์์ผ๋ฟ. ์ธํฐํ์ด์ค๋ ๋คํ์ฑ ๋๋ฌธ์ ์ฐ๋๊ฑด๋ฐ, ๋คํ์ฑ ์์จ์ ๊ด๋ฆฌ ํ๋ค์ ๋ ์๋๋ฉด ๊ทธ๋ฅ์งฌ. ์๋๋ฉด interactable.func(Player player); ์ด๋ ๊ฒ ๊ตฌํ ํด๋์ค์์ ํ๋ ์ด์ด ๋ฃ์ด์ ์ฒ๋ฆฌํ๋์ง.
๊ฐ์ฌํฉ๋๋น ์ถ์ ํด๋์ค๋ง์ผ๋ก ๊ตฌํํ ๋๋ ๋ต์ด ์๋ณด์์ด์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๊ฑด๋ฐ, ์ข ๋ ๊ณ ๋ฏผ์ ํด๋ด์ผ๊ฒ ๋ค์ฉ
์ธํฐํ์ด์ค์ fire๊ฐ์ ์ฐธ์กฐํ ํ์๊ฐ ์๊ฒ ํด์ผ ํจ
fire๋ฅผ ์ฒดํฌํ๋๊ฒ ์๋๋ผ IInteractable์ bool IsInteractable ํ๋กํผํฐ๋ฅผ ์ถ๊ฐํด์ ํ์ฌ ์ธํฐ๋์ ์ด ๊ฐ๋ฅํ ์ํ์ธ์ง๋ฅผ ํ์ธ ํ ์ ์๊ฒ ํด์ฃผ๋ฉด ๋จ