์ด์์ ์์ฑํ๋ ์๊ฑฐ๋ฆฌ ๋ฌด๊ธฐ๋ ๋ฅ๋ ฅ์น ๊ธฐ๋ฐํด์ ๋ฐ๋ฏธ์ง ์ฃผ๋๊ฑฐ ์ด๋ป๊ฒ ๊ตฌํํด์ผํ๋์ง ๋ชจ๋ฅด๊ฒ ๋ค
๊ทผ์ ๊ณต๊ฒฉ์ ๊ทธ๋ฅ Player์ ๋ถ์ฐฉ๋์ด์๊ธฐ๋๋ฌธ์ PlayerStatus์์ ๊ฐ ๋ฐ๋ก ๊ฐ์ ธ์ค๋ฉด๋๋๋ฐ
์๊ฑฐ๋ฆฌ ๋ฌด๊ธฐ๋ AmmoPrefab์ด ์์ฑ๋จ. ammo ํ๋๋ง ์คํฌ๋ฆฝํธ๋ฅผ ๊ฐ์ง๊ณ
๊ทผ์ ๊ณต๊ฒฉ์ ๋ฌด๊ธฐ ํ๋๋ง ์๊ณ ์ด๋ง์ ๋ Player์ ๋ถ์ด์๊ธฐ๋๋ฌธ์ ๊ทธ๋ฅ ์๊ฐ์์ด playerstatus ์ฐธ์กฐํด์ ๊ฐ์ ธ์ค๊ธฐ ํ๋๋ฐ
ammo๋ ๊ทธ๊ฒ ์๋๋๊น ์ด ๊ฐ์ ์ด๋ป๊ฒ ๊ฐ์ ธ์์ผํ ์ง ์๋ชจ๋ฅด๊ฒ ๋ค ์ด๊ฑธ ์ด๋ป๊ฒ ํด์ผํ์ง
playerstatus์ ์ด๋ฒคํธ ๊ตฌ๋ ํด์ผํ๋? ๊ทผ๋ฐ ์ด๊ฒ๋ ์๋๊ฒ ๊ฐ๊ณ .
๊ฑ ๊ตฌํ๋ง ์ ๊ฒฝ์ฐ๊ณ ์ด์ ๋ฅ๋ ฅ์น ๊ธฐ๋ฐ์ ์ถ๊ฐํด๋ฒ๋ฆฌ๋๊น ๊ฐ์๊ธฐ ์ด๊ฒ ๋ฌธ์ ๊ฐ ๋๋ค ๊ทธ๋ ๋ค๊ณ ammoํ๋ฆฌํฉ์ playerstatus๋ฅผ ๋ถ์ผ ์ ์์์
์ด๊ฑฐ ์ด๋ป๊ฒ ํด์ผํ์ง? ์ด๋ค ๋ฐฉ๋ฒ์ด ์์ง?
์ผ๋จ
playerstatus์ float๊ฐ์ผ๋ก ๊ฐ ๋ฅ๋ ฅ์น๋ฅผ ์ ์ฅํ๊ฒ ํ๋๋ฐ
์ด float๊ฐ ์ ์ฅํ ๊ฑธ ์ด๋ป๊ฒ ์ฐธ์กฐํด์ผํ ์ง ๊ฐ์ด ์ ์์กํ๋ค
์คํฌ๋ฆฝํธ๋ฌ์์ ํ์ํ ๋ฐ๋ฏธ์ง ๊ฐ์๊ฑฐ ์ฃผ๊ณ ๋ ๋ ค์ผ์ง
ํ ..
์์ฑํ ๋ ์ธ์๋ก ๋๊ฒจ
์ด๋ป๊ฒ? ์์ฑํ ๋ ๋ธ๋ฆฌ๊ฒ์ดํธ ์จ์ ์ธ์๋ก? ๊ทผ๋ฐ ๋๋ ๋น์ทํ๊ฒ ํด๋ณด๋๊น AABB in AABB๊ฐ ๋จ๋๋ผ ๋ญ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ ๋๊ฐ ์์์ข ์ค๋ช ํด์ค ์ ์๋
์ ํญ์ด๋ ๋ด๋ฐ๋ด๋ ๊ทธ๋ฅ status ๋ฐ๋ก ๊ฐ์ ธ์ค๋๋ฐ ๊ทผ์ ๋ฌด๊ธฐ๋ง ์์ด์
๊ตฌ์กฐ๊ฐ ๋ญ ์ด์ผ ๋์ด์๋์ง ๋ชจ๋ฅด๊ฒ ๋๋ฐ ํฌ์ฌ์ฒด ์คํฌ๋ฆฝํธ ๋ฌ๋ฆฐ ํ๋ฆฌํน ์์ฑ์ ํ๋ ์ด์ด๊ฐ ํ ๊ฑฐ ์๋? ๊ทธ๋ผ ์์ฑ๊ณผ ๋์์ ํฌ์ฌ์ฒด ์คํฌ๋ฆฝํธ ์ป์ด์ค๊ณ projectile.Init(Status playerStatus) ์ด๋ฐ์์ผ๋ก ๋๊ฒจ์ฃผ๋ฉด ๊ทธ๋ง์ด์์. ๊ทธ๋ฆฌ๊ณ OnTriggerEnter ๊ฐ์ ๊ณณ์์ ํผ์ฌ์ฒด GetComponentํด์ ํจ์๋ฅผ ์คํ์์ผ์ ๋๊ณ์ฐ์ ํ๋ ๋ง๋ ํ๋ฉด๋๊ณ .
๊ธํ๋ ์๋ก ์ ๋์์ฃผ๋ผ
๋ญ๊ฐ ๋ ์ง๋ฌธ์ฌ๋ฆฌ๋๊ฑฐ ํญ์๋ณด๋ฉด ๋ชจ๋ ๊ฒ ๋ค ์ด์ ๊ฐ ์์ด์ผ๋๊ณ ๋์ ๊ตฌํ์ด ์ ๋ต์ด์ด์ผ๋๋ค ์ด๋ฐ๊ฑฐ์ ์ง์ฐฉํ๋ ์ ๋๊ฐ ๋๋ฌด ์ฌํ๊ฑฐ๊ฐ์
์๋...๊ตฌํ์ด ์ ๋ต์ด๋ค ์ด๋ฐ๊ฒ ์๋๋ผ ์ด๋ป๊ฒ ํด์ผํ๋์ง ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ๋๋;
์ง์ง ๋ญ ์ด์์ด ๋ ๋ผ๊ฐ๋ค๊ฐ ๋๋ฏธ์ง๊ฐ ๋ฐ๋๋๊ฒ๋ ์๋๊ณ ๊ทธ๋ฅ float๋ณ์๊ฐ ํ๋ ๋ฃ์ด์ ๋ง๋ค์ด์ค๋ setํด์ฃผ๋ฉด ๋๋๋๊ฑธ ๋๋์ฒด ๋ฌด์จ ์๊ฐ์ผ๋ก ๊ณ ๋ฏผํ๋์ง์กฐ์ฐจ ์ดํด๊ฐ ์๊ฐ
๋๊ฐ ๋ชจ๋ฅผ์๊ฐ ์๋๊ฑธ ๊ทธ๋ฅ ์๋ฒฝํ๊ฒ ํด์ผ๋๋ค ์๊ฐํ๋๊น ๋๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅธ๋ค ์ง๋ฌธ์ฌ๋ ค์ ํด๊ฒฐํด์ผ๊ฒ ๋ค ์ด๋ ๊ฒ ์๊ฐํ๋๊น ๋ชจ๋ฅธ๋ค๊ณ ์ฐฉ๊ฐํ๋๊ฑฐ
set ํด์ฃผ๋๊น AABB in AABB๊ฐ ๋ธ. ๊ทธ๋์ ๋ฏธ์น๊ฒ ๋๊ฑฐ ์ด๊ฒ ๊ทธ๊ฑฐ์ ใฑใท
public float F_Strength { get =>f_strength; set { f_strength = value; } } ์ด๋ ๊ฒ ์ง์ ๊ฐ์ ธ์ค๊ฒ ํ๋๋ฐ, ์ด๊ฒ Ammo ํ๋ฆฌํฉ์๋ PlayerStatus๊ฐ ์์ผ๋๊น AABB in AABB ์๋ฌ๊ฐ ๋ธ
๋ ์ฝ๋๋ฅผ ๋ค ๊น๋ด์ผ์๊ฒ ์ง๋ง ๊ธ์ฐ๋๊ฒ๋ง ๋ณด๋ฉด ๊ทธ๋ฅ ๋ ์ฝ๋ฉ์ผ๋ก ๋ฌธ์ ํด๊ฒฐํ๋ ๋ฐฉ์์ด ๊ทผ๋ณธ์ ์ผ๋ก ๋ฌธ์ ๊ฐ ์๋ค ์๊ฐํจ
๋ฑ ๋์์ธํจํด์ ํ์ฅํ์๋ ํ๋ก๊ทธ๋๋ฐ ์ด๋ณด๋ค ์ฆ์ํ๊ณ ๋น์ทํ๊ธดํ๋ฐ ์ด๋๊ฐ ๊ทธ๊ฑฐํ๊ณ ๋ ์ฝ๊ฐ ๋๋์ด ๋ค๋ฅธ๊ฑฐ๊ฐ๊ณ .. ์ง์ง ๋ญ๊ฐ ๊ฐ๊ฐํ๊ธฐ ๊ทธ์ง์์
๊ทธ๋ฅ ์ด์ฃผ๋ ๋์ด ํฌ์ฌ์ฒด ์์ฑํ๋ฉด์ ํจ์ ํธ์ถํ๊ณ , ๊ทธ ์์ ์ ์ง๊ฐ ๋ค๊ณ ์๋ ๋ณ์๋ค ํจ๋ฌ๋ฏธํฐ๋ก ๋ฃ์ด์ฃผ๋ฉด ๋์ง์์?
์นผ์ ์๊ฒ ๋๋ฐ ์ด์ ๋ชจ๋ฅด๊ฒ ๋ค๋๊ฒ ๋ ๋ ์ดํด๊ฐ ์๊ฐ ๊ทผ๋ณธ์ ์ผ๋ก ๋๊ฐ์๋ฐ
์ด์์ด ์์ฑ๋์์. Ammo๋ก ์ ๋ฌ์ด ๊ทผ๋ฐ Ammo๋ ์๋ ๊ณณ์์ ์์ฑ์ด ๋๋๊ฑฐ๋๊น. ์ด๊ฒ PlayerStatus์์ ์ฐธ์กฐ๊ฐ ์๋์์
์ ๋์ถฉ ๋ชจ๋ ๊ณต๊ฒฉ์ ๋ง์ผ๋ฉด EnemyHit(float _damage) ๊ฐ์ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ฒ ํด์ ๊ฑฐ๊ธฐ์ ์์์ ๊ณ์ฐํ๊ฒ๋ ํด๋จ์ด์ DamageManager๊ฐ์ ์ฑ๊ธํค? ๋ญ ํด๋ ๊ด์ฐฎ์ ๊ฒ ๊ฐ์๋ฐ ๋ชจ๋ฅด๊ฒ์..
์ ๋ถ ๋ฐ๋ฏธ์ง ์ฒ๋ฆฌ๋ฅผ ๋งค๋์ ์์ ํ๊ฒ? ํ
์ด์์ ์ค๋ธ์ ํธ ๋ณ์ ๋ง๋ค๊ณ ํ๋ ์ด์ด๋ฅผ ๋ฃ๊ณ ์ฐธ์กฐํด
๊ทธ ์๋ฐ์ ์๋? ์ผ๋จ ์๊ฒ ๋ค
์ฐธ์กฐํ๋๋ฐ AABB in AABB๊ฐ ๊ณ์ ๋จ๋๋ฐ ์ด๊ฑฐ ๋จธ๋ฆฌ ์ํ๋ค ์ผ๋จ ๊ณ ๋ง๋ค. ๋๊ฐ ๋งํ ์์ผ๋ก ๊ฐ๋ด
๊ทธ ์๋ฐ์ ์๋๊ฒ ์๋์ง ์ฒ์ ์ํํ ๋ ๋ฐ๋ฏธ์ง๋ฅผ ๋ฃ์ด์ฃผ๊ณ ์ํํ๋๊ฒ ๋ฒ ์คํธ์ง ๋ญฃ๋๋ฌธ์ ์๋๋ค๊ณ ํ๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง
๊ธ ํ๋ ์๋ก ํ
AABB IN AABB๊ฐ ๋ญ์? AABB๋ฌผ๋ฆฌ ๋งํ๋๊ฑฐ?
1. ํฌ์ฌ์ฒด ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ฌ 2. ํฌ์ฌ์ฒด์ ํ์ํ ์ธ์ ์ ๋ฌ(ํฌ์ฌ์ฒด ๋ฐ์ฌํ๋ ์บ๋ฆญํฐ์ ์คํ ์ด๋ผ๋์ง)ํด์ ํฌ์ฌ์ฒด ์ ์ ์ฅ 3. ํฌ์ฌ์ฒด์ onColliderEnter(์๋ trigger)์ ์ถฉ๋ ๋์ ์ ๋ณด๋ ํฌ์ฌ์ฒด์ ์ ์ฅ๋ ์ ๋ณด๋ฅผ ํตํด ๋ฐ๋ฏธ์ง ๊ณ์ฐ
์๋๋ง์ด ๋ง๋ค ๋ญ๊ฐ ์ฝ๋ฉ ์ฌ๊ณ ๊ตฌ์กฐ๊ฐ ๊ทผ๋ณธ๋ถํฐ ์ด์ํ์ง์์ผ๋ฉด ์ด๋ฐ์ง๋ฌธ์ด ๋์ฌ์๊ฐ์์
์๋๋ง๋๋ก ๋ ์ง๋ฌธํ๋๊ฑฐ ๋ณด๋ค๋ณด๋ฉด ์ฝ๋ฉ์ ๊ฑฐ์ ์ด๋ณด์ ์์ค์ธ๊ฒ๊ฐ์๋ฐ ๊น๋ํ ๊ตฌ์กฐ๋ ๋์์ธํจํด์ ์กด๋ ์ง์ฐฉํ๋๊ฒ ๋ณด์ ์ด๋ฐ ๊ฐ๋จํ ๊ตฌํ์กฐ์ฐจ ํ ์ค ๋ชจ๋ฅด๋๋ฐ ๋์์ธํจํด์ ์ง์คํ๋ฉด์ ๊ตฌ์กฐ ๊น๋ํ๊ฒ ์ง๋๊ฒ ๊ฐ๋ฅํ๊ฒ ์? ๊ทผ์ ๊ณต๊ฒฉ์ ์ด๋ป๊ฒ ๊ตฌํํ๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ๋งํ๋๊ฑฐ ๋ค์ด๋ณด๋ฉด ํ๋ฆฌํน ๋ณ๋ ์์ฑ์ด ์๋๋ผ ๋ฌด๊ธฐ ์คํฌ๋ฆฝํธ์์ ํ๋ ์ด์ด ์คํ ๊ฐ์ ธ์์ ๊ฐ์ง๋ ์ ์๊ฒ ๋ฐ๋ฏธ์ง์ฃผ๋๊ฒ๊ฐ์๋ฐ ๊ทผ๋ณธ์ ์ผ๋ก ํฌ์ฌ์ฒด ๋ฐ์ฌํ๋๊ฑฐ๋ ๋ค๋ฅผ๊ฒ์์
ในใ ๊ทธ๋ฐ๋ฏ ๊ฑฐ์ ์ด๋ณด์ ์์ค์ด ๋ง๋๊ฒ๊ฐ๋ค
ํฌ์ฌ์ฒด ์์ฑ๊ณผ ๋์์ ํฌ์ฌ์ฒด์ ๋ค์ด์๋ ์คํฌ๋ฆฝํธ ํจ์ ํธ์ถํด์ ํ๋ ์ด์ด ์์ ๊ณต๊ฒฉ๋ ฅ์ด๋ ํจ๊ณผ ์ด๋ฐ๋ฐ์ดํฐ ๋ค ํฌ์ฌ์ฒด ๋ณ์์ ์ฎ๊ฒจ๋ฃ์ผ๋ฉด ๋์์
์์ ์ ์
1. ํฌ์ฌ์ฒด์๊ฒ ์คํฏ ์ ๋ฌ 2. ์คํฏ์ปดํฌ๋ํธ๋ฅผ ์ฐธ์กฐ 3. ํ์ ๋ด๋น ์ฑ๊ธํค์ด ํ๋ ์ด์ด์ ํฌ์ฌ์ฒด ์์ชฝ์ ์ฐธ์กฐ 4. ๋ฐ์ดํฐํ์ ์ผ๋ก ๋์ดํ๊ณ ๋ถ๋ฌ๋ค์ด๊ธฐ ์ ๊ฒ ์ด์ธ์๋ ๋๋ฏธ์ง๋ฅผ ๋ฐ๋์ชฝ์์ ์ฝ๋ฐฑ์ ์ฃผ๋๊ฐ ๋ฐฉ๋ฒ์ ๋ฌด๊ถ๋ฌด์งํ๋ฐ? ์ ์ด์ ๊ทผ์ ๊ณผ ์๊ฑฐ๋ฆฌ๋ ๋ณ๋๋ก ์๊ฐํ ํ์ ์์
์์ ๊ธ ํ๋ฒ๋ง ์ฝ์ด์ฃผ๋ผ ๋ด๊ฐ ์ ๋ ๊ฒ ๋ง๋ค์๋๋ฐ ์ด๋ป๊ฒ ํ๋๊ฒ ์ข์๊น? ์ค์ผ ์ด๋ ต์ง ํ์ ๋ด๋นํ๋ ๊ฑธ ๋ง๋๋๊ฒ ๋ง์๊น? Damage Manager ์ด๋ฐ์์ผ๋ก
์ฑ๊ธํค๊น์ง ๊ฐ๋๊ฑด ๋ฉํฐ์์ํ๋๋ฐฉ๋ฒ์ด๊ณ ๊ฐ๋ฒผ์ด ์ฑ๊ธ๊ฒ์์๋ ํผ๊ฒฉ์๊ฐ ์ฒ๋ฆฌํ๋๊ฒ ์์ฐ์ค๋ฝ์ง ํ๋ ์ด๊ฐ ๋๊ฐ๋ง์๋? ๊ฒ์ฌํ๊ณ ๋ฐฐ์ด๋ง๋๋๊ฒ๋ณด๋ค ๋ฐ๋์ชฝ์์ SetDead() ํ๋๊ฒ ๋ณดํต์ด์์? ์ด ์ค๊ฐ๊ณผ์ ์์ ๋ฒ ์ด์ค์ ๋ชจ๋ํ์ด์ด๋ฅผ ํฉ์น๊ฒ๋ง ์ ๋ฌ๋ฐ์ผ๋ฉด ๋์ด์ง ์ฌ๊ธฐ์ ๋ฌด์์ ์ฐธ์กฐํ๋๋๋ง ์๊ฐํ๋ฉด ๋จ ๊ฒฝ๋ก๋ ์์ ์์๊ฐ ์๋ฉ์์ผ๋ ๋ง์์ ๋๋๊ฑธ๋ก