RTS๋ฅ ๊ฒ์์์ ์ ๋์ด ํน์ ๊ณต๊ฒฉ์ ๋นํ์ ๋์ ๊ธฐ๋ฏน์ ๋ง๋ค๋ ค๋ค๊ฐ ๋งํใ
์์๋ฅผ ๋ค์๋ฉด
- ์ฌ์ง๊ณผ ๊ฐ์ด ๊ธฐ๋ง๋ณ A์ ๊ถ๋ณ B๊ฐ ์กด์ฌ
- A๋ ๋ชจ๋ ์๊ฑฐ๋ฆฌ ๊ณต๊ฒฉ์ ๋ํด 1/2๋งํผ ์ค์ด๋ ํผํด๋ฅผ ๋ฐ์์ผ ํจ
- ๋ค๋ฅด๊ฒ ๋งํ๋ฉด B๋ฅผ ๋น๋กฏํ ๊ฐ์ข
์๊ฑฐ๋ฆฌ ์ ๋๋ค์ ๊ธฐ๋ง๋ณ์ ํํด์๋ง 1/2๋งํผ ๊ฐ์๋ ํผํด๋ฅผ ์ค์ผ ํจ
์ผ๋จ ๋๋ ๋ชจ๋ ์ ๋์ UnitManager๋ผ๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฃ์ด ์ด๊ฑธ ํตํด HP, ๊ณต๊ฒฉ๋ ฅ ๋ฑ์ ๊ณต์ฉ ์คํฏ๋ค์ ๊ด๋ฆฌํ๊ณ ,
B๊ฐ A๋ฅผ ๊ณต๊ฒฉํ ๊ฒฝ์ฐ A ๋ด๋ถ UnitManager์ Damaged(๊ณต๊ฒฉ๋ ฅ, ๋ช
์ค๋ฅ )๋ฅผ ํธ์ถํ์ฌ ํผํด๋ฅผ ์ฃผ๋๋ก ํ์์
์ผ๋จ A๊ฐ B์ ์ ๋ณด๋ฅผ ๋ฐ์๋ด๋๊ฑด ๊ฐ๋ฅํ๋ค
Damaged(๊ณต๊ฒฉ๋ ฅ, ๋ช
์ค๋ฅ )
-> Damaged(๊ณต๊ฒฉ๋ ฅ, ๋ช
์ค๋ฅ , B์ ์ฝ๋๋ช
, ์์ฑ, ...)
์ ๊ฐ์ด Damaged()์์ ์ถ๊ฐ๋ก ์ ๋ณด๋ฅผ ๋ฐ์๋ด๊ฒ ๋ง๋ค๋ฉด ๋๋๊น
ํ์ง๋ง ์ฌ๊ธฐ์ A๊ฐ B์๊ฒ ํผํด๋ฅผ 1/2๋งํผ๋ง ๋ฐ๋ ๊ธฐ๋ฏน์ ๋ฃ์ผ๋ ค๊ณ ํ ๋
๋ฐ์ ํผํด๋ฅผ ์ ์ฉ์ํค๋ UnitManager๋ ๋ชจ๋ ์ ๋์ ๊ณตํต ์คํฌ๋ฆฝํธ๋ผ์
์ฌ๊ธฐ์ A๊ฐ ์๊ฑฐ๋ฆฌ ๊ณต๊ฒฉ์๋ง ํผํด๋ฅผ ๋ ๋ฐ๋ ์ฝ๋๋ฅผ ๋ฃ์์๊ฐ ์์
์ ๋ ๊ฐ๊ฐ์ ๊ณ ์ ์คํฌ๋ฆฝํธ์์๋ HP ์กฐ์ ์ด ๊ฐ๋ฅํ์ง๋ง,
์คํฌ๋ฆฝํธ๋ง๋ค ์ด๋ฆ์ด ๋ค๋ฅด๋ B์์ ํธ์ถ์ด ๋ถ๊ฐ๋ฅ
A์ UnitManager์์ ๋ฐ์ B์ ์ ๋ณด๋ฅผ ๊ธฐ๋ง๋ณ ๊ณ ์ ์คํฌ๋ฆฝํธ๋ก ์ฎ๊ธฐ๋ ๊ฒ๋ ๊ฐ์ ์ด์ ๋ก ๋ถ๊ฐ๋ฅ
B๊ฐ Damaged()๋ฅผ ํตํด ๊ณต๊ฒฉํ ๋ ์๋๊ฐ ๊ธฐ๋ง๋ณ์ด๋ผ๋ฉด ํผํด๋ฅผ 1/2๋งํผ๋ง ์ฃผ๋๋ก ํ ์๋ ์์
๊ถ๋ณ ๋ฟ๋ง ์๋๋ผ ํ์ด์ ์๋ ๋ชจ๋ ์ ๋์ด ๊ธฐ๋ง๋ณ์๊ฒ ์ค์ด๋ ํผํด๋ฅผ ์ค์ผ ํ๋ฏ๋ก
๋๋ถ๋ถ์ ์๊ฑฐ๋ฆฌ ์ ๋์ ๊ธฐ๋ง๋ณ์ ๋ํ ์์ธ์ฒ๋ฆฌ๊ฐ ๋ค์ด๊ฐ
๋ ์์ผ๋ก ์ถ๊ฐ๋ ๋ง์ ์ ๋๋ค๊ณผ์ ์์ธ์ฒ๋ฆฌ๋ค๋ ๊ณ์ ์ถ๊ฐํ๊ฒ ๋ ๊ฑฐ๋ผ๋ ๊ฒ๋ ๋ฌธ์
if (์ ๋๋ช
== ๊ธฐ๋ง๋ณ) ์ดํ์
else if (์ ๋๋ช
== ํ์ด์ ๋ฐ์ํ๋ ๊ธฐ๋ฅ์ ์ง๋ ๋ค๋ฅธ ์ ๋) ์ด ๊ณ์ ๋ค์ด๊ฐํ
๊ณ ์ด๋ฐ๊ฑธ ํด๋นํ๋ ์ ๋๋ง๋ค ์ผ์ผํ ์ถ๊ฐํด ๋๊ฐ์ผ ๋๋ค๋ ์๊ธฐ
๊ธฐ๋ฅ์ ์ผ๋ก ์๋์ ๋์ง๋ง ์์ผ๋ก์ ์์ฐ์ฑ์ด ํฌ๊ฒ ์ ํ๋๋ค
์ด๋ ๊ฒ ๊ฐ๋ฐ์ด ๋งํ ์ํฉ์ด๋ค...
์ ๋ฐ ์ํฉ ์์์ ํผํด ๋ฐ๋ ์ ๋์ด ํผํด ์ ํ์ ๋ฐ๋ฅธ ๊ธฐ๋ฏน์ ์ํํ๊ฒ ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น???
๋ด๊ฐ ์ง๊ธ ์๊ฐ๋๋ ๋ฐฉ๋ฒ์ ๊ฐ ์ ๋์ ๋ํ ํจ์จ์ฑ์ ๋ฏธ๋ฆฌ ํ๋ก ์ ์ํ๋ ๊ฑฐ์. ํ์ ์ ์ ์ฅํ ๋์๋ ๋ณดํต ์ซ์๋ก ์ ์ฅํ๋๊น, ์ซ์๋ก ๋ฐฐ์ด ๋ง๋ค์ด์ ์ฐพ๊ณ ์ ์ฅํ๋ค๊ฐ ๋์ค์ ๊ณต๊ฒฉ์/๋ฐฉ์ด์ ์์น ์ฐพ์์ ๋๋ฏธ์ง ํจ์จ ์ฐพ๊ณ ๊ทธ๊ฑธ ๊ณฑํ๋ ๊ฑฐ.
enum๋ฌธ์ผ๋ก ์ ๋ ํ์ ๋ค์ด ๋๋ ์ ธ์๊ธด ํ๋๋ฐ ์ข ์์๋ณด๊ณ ์ํธ ๊ฐ์๊ฑธ๋ก ์ฒด๊ณํ์ํค๋ ์๋๋ ํด๋ด์ผ๊ฒ ๋ค ๊ณ ๋ง์
๋ฐ์ดํฐ ํ ์ด๋ธ = ๊ธฐ๋ง๋ณ์ ์๊ฑฐ๋ฆฌ ๋ฐฉ์ด ์ฆ๊ฐ ๋
๋ฐ์ดํฐ ํ ์ด๋ธ = ํ๋์ถ๊ฐ = ๊ณต๊ฒฉํ์ (๊ทผ/์)
๋ฐ์ดํฐ ํ ์ด๋ธ ์ ์จ๋ดค๋๋ฐ ๋งํ๊ฑฐ๋ณด๋ ๋ง๋ค๊ณ ๋๋ฉด ์ด๊ฒ์ ๊ฒ ๊ฐํธํด์ง๋๋ณด๋ค ์๋ ์ํด๋ณธ ๋ถ๋ถ์ด๋ผ ์ง๊ธ์ ์ ํ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ด๊ฒ๋ ํจ ๋ ์์๋ณผ๊ฒ ๊ณ ๋ง๋ค
์ฌ๋ฌ ์ ๋ ๋ค๋ฃจ๊ณ ๊ทธ๋ฌ๋ฉด, ๋ฐ์ดํฐ ํ ์ด๋ธ๊ณผ ๋ฐ์ดํฐ ์ฃผ์ ํจํด ๋ฐฉ์์ ํ์์ ๋์๊ฐ์ ์คํํฌ๋ํํธ ์ด๋ป๊ฒ ๋ง๋ค์์๊ฒ ๊ฐ๋ ์ค๋ง ์ ๋๋ง๋ค ํด๋์ค๋ก ์ผ์ผํ ๋ง๋ค์๊ฒ ์ด? ์ ๋ํด๋์ค๋ ํ๊ฐ๋ง ์กด์ฌํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฃผ์ ์ ๋ฐ์์ ์ฐ๋๊ฑฐ
์์ฐ์ฑ์ด ์ง์ง๋ก ์ ํ๋ ๊น? ์์ธ๋ก ๊ทธ๋ฐ if๋ฌธ ๋ฉ์ด๋ฆฌ๊ฐ ๋ ์์ฐ์ ์ผ์๋ ์๋ค
๋์ ์ ๋๋ง๋ค ํ๋๊ฒ ์๋๋ผ ์ ๋ ํ์ ๋ง๋ค ํ๋๊ฑฐ์ง
๊ทธ๋ฅธ๊ฐ ์๊ฐํด๋ณด๋ฉด ๋ ธ๊ฐ๋ค๋ผ๋ ์๊ณ ์๋ ๊ฐํธํ ๋ฐฉ๋ฒ์ด ๋์์๋ ์๊ฒ ๋ค ์ผ๋จ ์ด๊ฒ์ ๊ฒ ํด๋ณด๊ณ ์ ์๋๋ฉด ๊ทธ๋์ผ๊ฒ ๋ค ๊ณ ๋ง์
๋ค๋ฅธ ๋ผ์ด๋ธ ๊ฒ์๋ค ์์ค์ฝ๋๋ณด๋ฉด ์ด๋ฐ๊ฒฝ์ฐ๊ฐ ํจ์ฌ ๋ ๋ง์
๋ ๋น์ทํ ํ๋ก์ ํธํ ๋ ์ ๋ ๊ณตํต์คํฌ๋ฆฝํธ์(UnitManager) ๊ฐํํจ๊ณผ ์ปจํ ์ด๋๋ฅผ ๋ง๋ค์ด์ ๊ฐ์ข ์คํฏ์ด๋ ํน์ํจ๊ณผ (๋)๋ฒํ ๊ด๋ฆฌํ์. ๋ฐ๋ฏธ์ง ๊ฐ์ํจ๊ณผ๋ ์ ๋์ OnTakeDamage์ ์ฒด์ธ๊ฑธ์ด์ ref float val๋ก ๋์ด์จ ๊ฐ์ ๊ฐ์์์ผ์ฃผ๋ ํ์์ผ๋ก ๊ตฌํํจ
๊ทผ๋ฐ ๋ณดํต ์ ๋ต๊ฒ์ ์ ๋ ํ์ ๋ง๋ค ๋ค ์ฃผ๊ณ ๋ฐ๋ ๋์งํจ์จ์ด ์ ํด์ ธ์์ผ๋๊น ๋ฃฐ์ ๋ฒ์ด๋๋ ์ผ์ด์ค๊ฐ ๋ง์ง ์์๊ฑฐ๋ผ๊ณ ํ์ ๋๋ฉด ํ ์ด๋ธ์ง์ ๊ด๋ฆฌํด๋ ๊ฐ ์ถํ ๊ฑฐ๊ฐ์...
ref๋ฅผ ์ฐ์ง ๋ชปํ๋๋ฐ ๊ทธ๋ ๊ฒ ๊ณตํต์คํฌ๋ฆฝํธ์ ์ ๋ณ์์ ํผํด๋ฅผ ์ ์ฅ์์ผ ๊ณ ์ ์คํฌ๋ฆฝํธ๋ก ๋๊ธฐ๋๊น ๋ฌ์ ๊ณ ๋ง์
๊ทธ๋ฅ ํ์ ์ ๋๋๊ณ ํ์ ๋ณ๋ก ์๋ ์ ํ์ ์ ๋์ง๋ณด์ ๋ช% ์ด๋ฐ๊ฑฐ๋ ๋ค if์ง ํ๋๊ฒ ์ ์ผ ๋์๋ฏ
์๋ถํฐ if์ง์ ์ถ์ฒํ๋ ์ ๋ค์ด ๋ง์๊ฑฐ ๋ณด๋ฉด ๋ง๋ฅ ๋์๊ฑด ์๋๊ฐ๋ณด๋ค
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
๋ด ์ค๋ ฅ์ด ๋ถ์กฑํด์ ๊ทธ ์ฌ์ด์ ํจ์๋ฅผ ๋ ๋ผ์๋ฃ๊ธด ํ๋ค๋๋ผ.. ์ํผ ๊ณ ๋ง๋ค
A -> B ๋ B -> A ๊ฐ์ด ๋จ๋ฐฉํฅ์ด ์๋ A <-> B ๊ฐ์ ์๋ฐฉํฅ์ ๋ฌด์กฐ๊ฑด ๋ฐ๋ก C ๋ผ๋๊ณณ์ ๋ง๋ค์ด์ (A, B) -> C ํํ๋ก ์ฒ๋ฆฌํด์ผํจ. ์ฌ์ค ๋จ๋ฐฉํฅ ์กฐ์ฐจ๋ ๋์ค์ ์ด๋ค ์ด๋ฒคํธ๊ฐ ์ถ๊ฐ๋ ์ง ๋ชจ๋ฅด๋ ๋ฐฉ์ด์ ์ผ๋ก๋ผ๋ (A) -> C ํํ๋ก ์์ฑํ๋๊ฑธ ์ถ์ฒํจ
์ง๊ธ์ ์ค๊ฐ ์ ๋ฌ์๋ฅผ ๋ฃ์ผ๋ ค๋ฉด ๋๋ฌด ๋ง์๊ฑธ ๊ฐ์์์ด์ผ ํด์ ์ด๋ ต์ง๋ง ๋ค์์ ๊ธฐํ๋๋ฉด ์ฐธ๊ณ ํด๋ณผ๊ฒ ๊ณ ๋ง์