์ด์์ IFireable ์จ์ ๋ง๋ฌ.
์ด๋ ๊ฒ ๋ง๋ค๊ณ ๊ตฌํํจ. ์ ๋ํฐ ๊ฐ์์์ ์ด๋ฐ์์ผ๋ก ๊ตฌํํด์ ๋์ค์ ์ด ์ธํฐํ์ด์ค๋ฅผ ์์ํ๋ ๊ฒ์ ํ ๋งค๋์ ์ ๋ฃ๊ธฐ ํธํ๊ฒ ๊ตฌ์กฐ ์ง๋ผ๊ณ ํ๊ณ
๋ฐ๋ก ๊ตฌํํ๋ ์ด์ ๋
์ ์ด์๊ณผ ํ๋ ์ด์ด ์ด์์ ๋ฅ๋ ฅ์น๋ฅผ ๋ฐ๋ก ๋ง๋ค์ด์ผ ํด์
ํ๋ ์ด์ด์ ์ด์=์คํ ์ดํฐ์ค์ ์ํฅ ๋ฐ์
์ ์ด์=๊ณ ์ ๋ ๊ธฐ๋ณธ ๋ฐ๋ฏธ์ง๋ง ์ค
์ด๋ ๊ฒ ๋ง๋ฌ.
๊ทธ๋ฆฌ๊ณ ๋ํด์ ์ ์ด์์ ๋ฐ๋ก ๊ตฌ๋ถ ์ง์ด์ Boolean์ผ๋ก ์ ๋ผ๋ฆฌ ์ด์ ๋ฐ๋ฏธ์ง ์ ํ๊ฒ ํ๋๊ฒ๋ ๊ตฌํํด๋ณผ๋ ค๊ณ
๋๋ฒ๊ทธ ๋ก๊ทธ์์๋ EnemyAmmoDetailsSO๋ก ๋ค์ด๊ฐ๋๊ฑฐ ํ์ธํ์.
์ฒ์์๋ ์ด์ ์ด๊ธฐํ ํ๋ InitialiseAmmo
๋ฉ์๋ ์์ ๋ค์ด๊ฐ๋ ๋ณ์ AmmoDetailsSO๋ฅผ EnemyAmmoDetailsSO๋ก ํ๋๋ฐ ์ญ์ ์ด์ ์์ฑ์ด ์๋์,
AmmoDetailsSO๋ก ํ๋๋ฐ ์ฌ์ ํ ์๋จ.
๋น์ฐํ ๋ค์ด๊ฐ๊ณ ์๋๊ฑด ํ์ธ์ด ๋จ. ๊ฑ ์ด์ ์์ฑ์ด ์๋จ.(์ด ๊ฒฝ์ฐ์ ํ ๋งค๋์ ์ ์๋ ์ด์์ด ํ์ฑํ๊ฐ ์๋๋ค๊ณ ๋ด์ผํจ)
๋ฌธ์ ๋ EnemyAmmoDetailsSO๊ฐ ์๋, ๊ทธ๋ฅ AmmoDetailsSO๋ก ํ๋ฉด ์ด์์ด ์์ฑ(ํ์ฑํ)ํด์ ์๋ง ๋๊ฐ. ์ด๊ฒ ๋ฌธ์ ์.
์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ๋ค. ์บ์คํ ์ ํด๋ ์๋ผ. ์ธํฐํ์ด์ค๋ฅผ ๋ฐ๊พธ๊ณ ๋ณ์๋ฅผ ๋ฐ๊ฟ๋ ์๋ผ
๊ฐ์ด ๋ค์ด๊ฐ๊ณ ์๋ ๊ฑด ์ฒดํฌ๊ฐ ๋์.
๊ทผ๋ฐ ํ๋งค๋์ ์ ์๋ ์ด์์ด SetActive๊ฐ ์๋จ.
์ด์ ์์ฑ ๊ด๋ จ ์ฝ๋
์ด์ ์์๋ง์ ๋ณธ์ธ์ด๋ ๋ค๋ฅธ๊ฑฐํ๊ณ ์ถฉ๋ํ๊ฑฐ ์๋?
์๋ setting ๋ค์ด๊ฐ์ ๋ ์ด์ด ์ฒดํฌ ํด๋ด๋ ์ง์ง ์๋ ใ ใ ๊ทธ๋์ ์จ๋ฐ ๋ ๋นก์นจ ๋ด๊ฐ
GPTํํ ๋ฌผ์ด๋ด๋ ๋ฌธ์ ๊ฐ ์๋ค ํ๋๊น ๊ทธ๊ฒ ๋ ๊ฐ๊ฐํจ
์ ์๋๋ฉด ์ฒ์๋ถํฐ ๋ฏ์ด๊ณ ์ณ์ผ์ง ์์ค
๋ญ ๊ณต์ ๋ ์ฝ๋์ ์์ฑ๊ด๋ จ๋ ์ฝ๋๋์๋ณด์ด๊ณ ์ธํฐํ์ด์ค์ ๊ตฌํ์ฝ๋๊ฐ ๋ค์ด๊ฐ์๋ค.. ๋ญฅ๋ฏธ.. ํต์ฌ์ฝ๋๋ ์๋ณด์ด๊ณ .. ๋ญ ์ฌ๋ ค์ผํ ์ง ๋ชจ๋ฅด๊ฒ์ผ๋จ ๊ฑ ํ์ ์์ฌ๋ ค๋ด. ์ ๊ฒ๋ง๋ณด๊ณค ์์๊ฐ์ ๋ค
ใฑใท ใฑใท
์ถ๊ฐํจ. ๋ฒํผ์ ๋๋ฅด๋ฉด ์ด๋ฒคํธ๋ก ์ด๊ธฐ ๋ฐ์ฌ ์ด๋ฒคํธ ํธ์ถ๋จ
ReuseComponent๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋๊ฑด๊ฐ. ํ๋งค๋์ ๋ EnemyAmmoSO๋ PlayerAmmoSO ๊ตฌ๋ถ๋ชปํ ๊ฑฐ๊ฐ๋ค. ๋ฌธ์ ์์ง๊ฐ ์์ด๋ณด์ด๋ ์ฝ๋์
๋ด๊ฐํ๋งค๋์ ์ฌ์ฉ๋ฒ์ ์ ๋ชจ๋ฅด์ง๋ง, ํ๋งค๋์ ์ ๊ฐ์ฒด๋ฅผ ๋ฃ์๋ EnemySO๋ก ์์ฑํ๊ณ PlayerSO๋ ํ๋ฒ ์์ฑํ๋ค๊ณ ์น๋ฉด ๋๊ฐ๊ฐ ํ์๊ด๋ฆฌ๋๊ณ ์์๊ฑฐ์. ๊ทผ๋ฐ ReuseComponent์ ์์ํด๋์คํ์ ์ธ Ammo๋ฅผ ๊ฐ์ง๊ณ ๊ฐ์ฒด๋ฅผ ์ป๋๋ค? ๊ทธ๋ผ Enemy๋ Player๋์ค ๋ญ ์ค๊น? ๋๋คํ๊ฒ ๋์ค ํ๋๋ฅผ ์ค์๋ ์๊ณ ์๋๋ฉด ์๋ฌ๊ฐ๋ ์์ง๊ฐ ์์ด๋ณด์ฌ.
ํ ์ผ๋จ ใ ใ
์ธํฐํ์ด์ค์์ ์ ๋ ๊ฒํ๋ฉด AmmoDetailsSO์์ ์ฒดํฌํด์ ์์๋ฐ๋๊ฒ๋ ๊ฐ๋ฅํ๋ค๊ณ ํ๋๋ผ๊ณ . ์ค์ ๋ก ๊ตฌํ ํด๋ ์ ๋๋ก ๋์๊ฐ๊ณ ์๊ณ . ์ผ๋จ ๋๊ฐ ๋งํ๊ฑฐ ์ฒดํฌํด๋ณด๊ฒ ์
๋๊ฐ ํ๋ง๋งค๋์ ๋ฅผ ์ง์ ๊ตฌํํด๋ณด๋ฉด ๋ด๊ฐ ๋ญ์๋ฆฌํ๋์ง ์์์์๊ฑฐ์
OnDisable์ Debug.Log๋ฃ์ด์ ์ด๋์ Disable์ด ๋ฐ์ํ๋์ง ํ์ธํด๋ณด์ ์คํ ๋ฆฌ์์ธ๋ฉ ๋ผ์ ์ด๋์ Call ๋๋์ง ๋ณด์ผ๊ฑฐ์ ๋ด ๊ธฐ์ต์ด ๋ง๋ค๋ฉด ใ ใ
์ด๊ฑฐ ์ฒดํฌํด๋ณด๊ฒ ์
์ฝ๋์ง์ง์ด๋ ต๋ค;
Udemy ๊ฐ์ ์ฝ๋ ๊ทธ๋๋ก ๋นผ๋ผ์ง ๋ง๊ณ ์ดํดํ๊ณ ์ข ์จ๋ผ
์ด๊ฑฐ ์ดํดํด์ ๊ณ ์น๊ฑด๋ฐ, ์๋๊ฐ; ์ ๋ฐ๋ฏธ ๊ฐ์ ์ฝ๋์์ ์ค์ ๋ก ์ ๊ฑฐ ์ , ์๊ตฐ ๋๋๋๊ฑฐ ์์ง ์๋. ๋ ๊ฐ์ ์ฌ๋ฌ๊ฐ ๋ค์ด์ ๊ฐ์์์ ๊ตฌํํด์ ๋์๊ฐ๋๋ถ๋ถ๋ง ๊ณ ์ณ์ ์์ ํ๋๋ฐ
์ธํฐํ์ด์ค๋ถํฐ ํ๋ ค๋จน์๋๋ฐ ๋ญ๊ฐ ์ดํดํ๊ณ ์ด๊ฑฐ์...
์งํผํฐ๋ ์ด๋ฐ ๋ฐฉ์๋ ์๋ค๊ณ ์๋ ค์ฃผ๋๋ฐ;
์ค์ ๋ก ์ํ๋๋๋ก ๋์๊ฐ๊ณ
๋ด์๋ฆฌ๊ธดํ๋ฐ 2์งค์ ๋ณด์ด๋ ์ด๋์ ๋ผ์ด์ฆ์๋ชจ ๋ณธ๋ฌธ๊ตฌ์ฑ ์ด์ผํจ? ์ธํฐํ์ด์ค๋ ์ถ์ํ๋ฐ์์๋์ง์๋ - dc App
๊ทผ๋ฐ ์ฝ๋๋ด๋ณด๋๊น ๋ง์งค์ currentAmmo๋ฅผ ํ๋ ์ด์ด๊ป์ง ์๋๋ฏธ๊ป์ง ํ๋ณํ์์ผ๋๊ณ ์ ๋ณํ์ํจ ๋์ค์ ํ๋๋ฅผ ๋ฃ๋๊ฒ ์๋๋ผ ํ๋ ํธ์๋ชจ๋ฅผ ๊ทธ๋๋ก ๋ฃ์? if๋ฌธ ์จ์ ํ๋ ์ด์ด๋ํ ์ผ์ฆ์ธ์ง ์๋๋ฏธ๋ํ ์ผ์ฆ์ธ์ง์ ๋ฐ๋ผ ๋๋๊ฒ๋ ์๋๊ณ ๊ธ๊ณ ์ ์ด์ as ํด๋์ ๋ณ์๋ ์ด๋์์ฐ๋๊ฑฐ์ผ - dc App
์๋๋๋ก ์ธํฐํ์ด์ค์ ํจ์ ์์ฒด๋ง ์ ์ํด์ฃผ๊ณ ๋ด์ฉ์ ๋น์์ ธ์๋๊ฒ ๋ง๊ณ ๋ฌด์๋ณด๋ค ๊ตฌ์กฐ์ ์ผ๋ก ์ด์ ๋ฐ์ฌ๋ฅผ ๊ตณ์ด ์ธํฐํ์ด์ค๋ก ๊ตฌํํ ์ด์ ๊ฐ ์๋ ์ถ์
Debug.log(ammoDetails)๊ฐ ์ฐํ๋๊ฑฐ ๋ด์ ์ด์ ๋ฐ์ฌ๋๋ ๊ฒ(InitialiseAmmo) ๊น์ง ์ ๋๋ก ๋๋๊ฑฐ์ ๊ทผ๋ฐ ๋ฐ์ฌ(ํ์ฑํ๊ฐ)๊ฐ ์๋๋๊ฑฐ๋ฉด ์๋ง ๋ฐ์ฌ๋์๋ง์ SetActive(false) ๋๊ฑฐ ๊ฐ์ ์ค๋ธ์ ํธ ํ ๋ฐฉ์ ๊ตฌํํ๋ ค๋ ๊ฑฐ๋ผ๋ฉด ๋ถ๋ช ๋นํ์ฑํ ํ๋ ๋ถ๋ถ๋ ์์ํ ๋ฐ ์ด๊ฒ AmmoDetailsSO ํํ ๋ฉ์ฉกํ๊ฒ ์๋ํ๊ณ ์๋๋ฐ EnemyAmmoDetailsSO ํํ ๊ฐ๋ก๊ฐ์ด ์๋ํ๊ณ ์๋ ๊ฑฐ์ผ์๋?