ใ ใ
์ง๋๋ฒ์ย ์ฌ๋ ธ๋ ๊ธ์์ ๋๊ธ๋ก ์์ดํ ๊ณผ ๋ฌด๊ธฐ ํด๋์ค ๋ก์ง ๊ตฌํ์ ๋ถ๋ฆฌ๋์ด ์๋ ๊ฒ ๋ซ๋ค๊ณ ์กฐ์ธ๋ค์ ํด์ค์
์์งํ ๋งํ๋ฉด ์ฒ์์ ์์ผ๋ก '์๋๋ฐ ๋ด์๊ฐ์ด ์ณ์๊ฑฐ ๊ฐํผ๋' ํ์ง๋งย
๊ทธ๋๋ ํ๋ก๊ทธ๋จ์ย ๋ง๋ค๋ค ๋ณด๋ฉดย ์ค๊ฐ์ฏค ๊ฐ์ ๋ด ์ค๊ณ๊ฐ ์๊ณ ๋ณด๋ ์๋ชป๋์๋ค๋ ๊ฑธ ์๊ฒ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋๋ผ๊ตฌ์ฅ
๊ทธ๋์ ๋น ์ฝ์ ํ๋ก์ ํธ(์์ง๋ ์๋)์๋ค๊ฐ ํ ์คํธ ๊ฒ์ ๋ง๋ค๋ฏ์ดย ํ๋ฒ ๊ตฌํํด๋ณด๋ฉฐย ์ค๊ณ๋ฅผ ๊ณ ์ณ๋ณด์๋ ์๊ฐ์ ํ์
๊ฒฐ๋ก ๋ถํฐ ๋ด๊ณ ์์ํ์๋ฉดย ์ฒ์์ ์ค๊ณํ๋ ๋ฐฉ๋ฒ์ ๋๋ฌด ๊ณผ์ค๊ณ์๋ค๋ ๊ฑธ ์๊ฒ ๋์๊ณ ์ข ๋ ๊ฐ๋จํ๊ฒ ๊ตฌ์กฐ๋ฅผ ์์ ํ์
1. ๊ฒ์๊ณผ ์ ์ฌํ ํ๊ฒฝ์ ๋ชจ์ํ๊ธฐ ์ํ ๊ฐ์์ ์กํฐ ํด๋์คย
์ด๊ฑด ์ค๊ณ์ ํฌํจ๋๋ ๊ฒ ์๋๋ผ ๋์ถฉ ๋์ด๊ฐ๊ฒ ์์
ํ๋ ์ผ:
์์ดํ ๋ค์ ๋ค๊ณ ์์
์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฐ์์ ์ด๋ฒคํธ๋ฅผ ๋ฐ๋ํ๋ ์ปจํธ๋กค๋ฌย ์ญํ ๋ ์ํํจ
์กํฐ์ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ถ์๋ ๋ณ๋ค๋ฅธ ๊ธฐ๋ฅ์ด ์๊ณ , ๋จ์ง ํค ์ ๋ ฅ์ ๋ฐ๋ผ "ํ์ฌ ์ ํ๋ ๋ฌด๊ธฐ"์ ์ด๋ฒคํธ ํจ์๋ฅผ ํธ์ถํ ๋ฟ์
2. ์ด๋น๋ฆฌํฐ ์ปดํฌ๋ํธ
์ด๋น๋ฆฌํฐ ์ปดํฌ๋ํธ๋ ์ด์ ๊ธ์์ ์ค๋ช ํ ๊ฒ๊ณผ ๊ฐ์ดย ๋ฌด๊ธฐ์ ๊ฐ์ข ๋ฅ๋ ฅ์น๋ฅผ ์ค์ ํ๊ฑฐ๋,ย
์ปค์คํ ํ ์ดํํธ๋ ์ฌ์ด๋๋ฅผ ์ง์ ํ๊ฑฐ๋ ํ๊ธฐ ์ํด์ย ์์ดํ DB์ ๋ ธ์ถ์ํค๋ ๋ถ๋ถ์.
์์ดํ ย DB์ / ์ค์ ๋ฌด๊ธฐ์ ๋ก์ง์ด ๋ด๊ธด ์ฝ๋๋ฅผ ๋ถ๋ฆฌํ๊ณ , ๋๊ฐ์ ๋ก์ง์ ๊ฐ์ง ๋ฌด๊ธฐ๋ฅผ ๋ค์ํ๊ฒ ๋ง๋ค ์ ์๋๋ก ํ๊ธฐย ์ํ ๊ฑด๋ฐ
์ธ๋ฆฌ์ผ์์ ์ง์ํ๋ย "์ํํธ ํด๋์ค ๊ฒฝ๋ก" ํ์ ์ผ๋ก DB์์ ์ ํํย ํด๋์ค๋ฅผ ๋ฐํ์์ ์ฝ์ด์ย ์คํฐํ ์ ์๊ฒ ๋์ด์๋ ๊ฒ ๊ฐ์์
์๋์ฒ๋ผ "์ํํธ ํด๋์ค ๊ฒฝ๋ก" + "string:string ๋งต"์ ํ๋์ ๋ฃ์ผ๋ฉด ๋ด๊ฐ ์ํ๋ ๊ตฌ์กฐ๋ฅผย ๊ตฌํํ ์ ์์.
(์ง์ง๋ก ๋๋์ง๋ ์์ง ํ์ธ ์ํด๋ณด๊ธด ํจ.. ์๊ฐ๋ ๊น์ ๋ด์ผ์ ์ด๊ฑฐ ํด๋ด์ผ ํ ๋ฏ)
(ํ
์คํธ๋ฅผ ์ํด์ ์ด ๋ถ๋ถ๋ง ๋ฐ๋ก ๋ง๋ค์ด ๋ณธ ๊ฒ, "AKMTEST" ํด๋์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋ ๊ฐ์ ์์ดํ
์ ๋ง๋ ์์)
๋ค์ ํ๋กํ ํ์ ์ฝ๋๋ก ๋์์์
๋ชจ๋ ๋ฌด๊ธฐ์ ๋ฒ ์ด์ค๊ฐ ๋๋ ํด๋์ค์ธ WeaponBase๋ฅผ ๋ง๋ค๊ณ
๋ฌด๊ธฐ๊ฐ ๊ฐ์ ธ์ผ ํ ๊ธฐ๋ณธ์ ์ธ ์์๋ค์ด๋ ๋๋ถ์ด์, ์กํฐ๋ก๋ถํฐ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ย ํธ์ถ๋๋ OnFire, OnReload ๋ฐ์ ํจ์๋ค์ ์ํ์ ์ ์ธํด๋
๊ทธ๋ฆฌ๊ณ ์ด๋น๋ฆฌํฐ ์ปดํฌ๋ํธ๊ฐ ์ด WeaponBase ํด๋์ค์ ๋ถ๋๋ก ๊ตฌํํจ
๊ฐ๋จํ ๋งํด์ ๊ณต๊ฒฉ๋ ฅ, ์ฅํ์, ๋ฐ๋๊ณผ ๊ฐ์ ์์ฑ ํ๋ํ๋๊ฐ ์์ ๋ณด์ด๋ย ๋์ ๋๋ฆฌ์ Key(์์ฑ๋ช )-Value(๊ฐ ํด๋์ค) ํํ๋ก ๋ค์ด ์๋ ๊ฒ
์ด๋น๋ฆฌํฐ ํด๋์ค ์์ฒด๋ ๋ณต์กํ ๊ฒ ์์ดย int, float, string๊ฐ์ย ๊ฐ ํ๋๋ง ๊ฐ๊ณ ์๋๋ก ํ๊ณ
AbilityComponentBase์์ย "๋ฌธ์์ด์ ๋ฐ์์ ๊ฐ์ ์ด๊ธฐํ์ํค๋ ๊ฐ์ ํจ์"๋ฅผ ์์๋ฐ์ ๊ตฌํํจ.
๊ทธ๋ฆฌ๊ณ WeaponBase๋ก๋ถํฐ ์์๋ฐ์ย ์ค์ ๋ฌด๊ธฐ๋ฅผ ๊ตฌํํ ๋๋ย ์ด๋ฐ์์ผ๋ก ์ด๋น๋ฆฌํฐ๋ฅผ ์์ฑํจ
์ ์์์์๋ Init ํจ์์์ ์ด๋น๋ฆฌํฐ๋ฅผ ์ด๊ธฐํํ๊ณ , ์ฑ๋ฅ์ ์ํด์ ๋ด๋ถ์ ์บ์ฑํ๋๋ก ๊ตฌํํ๋๋ฐ,
์ด๊ธฐํ๋ฅผ ์ด๋ ๋จ๊ณ๋ย ์ด๋ ํด๋์ค์์ ์ฃผ๋ํด์ ์ํฌ์ง๋ ์์ง ํ์ ํ์ง ๋ชปํ์.ย
๋ฌด๊ธฐ ํด๋์ค์์ ์์ฒ๋ผย ์์ฑ์ ์ํ ์ฝ๋๋ฅผ ๋ช
์ํ์ง ์์ผ๋ฉด์,ย ํ
์ด๋ธ์์ย Stat์ ์ฝ์ด์ค๋ ๋จ๊ณ์์ ์๋์ผ๋ก ์ด๊ธฐํ ์ํค๋ ๋ฐฉ๋ฒ๋ ์๊ณ
ํ์ ํ Behaviour ํด๋์ค ๋ด๋ถ์์ WeaponBase๋ฅผ ํธ์ถํด์ย ์์ฑ์ํฌ ์๋ ์์.
์ด๊ฑด ์ฒ์์ ์ข ๋ค๋ฅด๊ฒ ๋ง๋ค์๋ค๊ฐ ์ค๋ ๊ณ ์น ๊ฑฐ๋ผ์ ๋นํจ์จ์ ์ด๊ฑฐ๋ ํ ๋ถ๋ถ์ด ๋จ์์๋๋ฐ ์ค์ ๋ก ํ๋ก์ ํธ์ ๋ฃ์ ๋ ์ข ๋ ๋ค๋ฌ์ด์ ๋ฃ์ ๋ฏ
3. ๋นํค์ด๋น์ด ์ปดํฌ๋ํธ
์ฒ์ ์ค๊ณํ ๋๋ ๋นํค์ด๋น์ด ๋ง๊ณ ๋ ๋นํค์ด๋น์ด์ ๋์ ์ฌ๋ถ๋ฅผย ๊ฒฐ์ ํ๋ ExecuteCondition ์ปดํฌ๋ํธ๋ ๊ณ ๋ คํ์์ง๋ง
์ค์ ๋ก ๊ตฌํํ๋ฉด์ ๋ค์ ์๊ฐํด ๋ณด๋ ๊ตณ์ด ์ธ๋ฐ์์ด ๋ณต์กํ๊ธฐ๋ง ํ๊ณ ๋ณ ์๋ฏธ๊ฐ ์๋ค๋ ๊ฒฐ๋ก ์ ์ด๋ฅด๋ ์
์๋๋ฉด ์ด์ฐจํผ ์์ฌ ์์ง์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ตฌํ๋์ด ์๋ ์ปดํฌ๋ํธ๋ค๋ ๋ด๋ถ์ ์ธ ์กฐ๊ฑด์ ๋ฐ๋ผ์ ์์์ ๋์ํ๋ ๊ฒ ์ผ๋ฐ์ ์ด๊ณ
๋ฌด๊ธฐ ๋ฅ๋ ฅ์น์ผ ์ธ๋ถ์ ๋ ธ์ถ์์ผ์ผ ๋๋๊น ๋ถ๋ฆฌํ๋ ๊ฒ ๊น๋ํ ์ ์์ง๋ง
๋ฌด์จ "์ด์์ด ์ถฉ๋ถํ์ง?" ๊ฐ์ ์กฐ๊ฑดํจ์๋ฅผย ์ฌ๊ธฐ์ ๊ธฐ์ ์จ ๋ด์ผ ์ผ๋ง๋ ์ฐ๊ฒ ๋ค๊ณ ๊ทธ๊ฑธ ๋ฐ๋ก ๊ตฌํํ๋ ค ํ๋ ์ถ์
๊ทธ๋์ ๊ฒฐ๋ก ์ Condition์ ์์ ๊ณ , "ํ์ฝ" ์ปดํฌ๋ํธ๊ฐ ์๋ค๋ฉด ๊ทธ๋์ด ํ์ฝ์ด๋ ๊ด๋ จ๋ ๊ธฐ๋ฅ๋ค์ ๋ค ๋งก์์ ํ๊ณ ย
๊ทธ ๊ธฐ๋ฅ๋ค์ ์ด์ฉํด์ ๋ฌด๊ธฐ ํด๋์ค์์ ์คํ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ์ย
์๋ฌดํผ ์ฌ๊ธฐ์๋
ย
๋นํค์ด๋น์ด ์ปดํฌ๋ํธ ์ํ์ ๋ง๋ค๊ณ (๋ฌด๊ธฐ ํด๋์ค์ ๋ถ์ ์ฑ๋กย ์ด๋ฐ์ ๋ฐ ๋์์ด ๊ฐ๋ฅํ๊ฒ ๋ ํผ๋ฐ์ค๋ฅผ ๋ฐ์)
์ด๋ ๊ฒ "Ammo"์ ๊ด๋ จ๋ ์กฐ๊ฑดย ํจ์๋ ์ฌ์ฅ์ ๊ฐ์ ๊ธฐ๋ฅ ํจ์๋ค์ ๋ง๋ค์์
๋ง์ง๋ง์ผ๋ก ๋นํค์ด๋น์ด๋ฅผ ํ์ฉํด์ ๋ฌด๊ธฐ ํด๋์ค์ "์ฌ๊ฒฉ"๊ณผ "์ฅ์ " ๋์์ ๊ตฌํํ ์์์
์ค์ํ ๋ถ๋ถ์ ๋ค ์ดย ๊ฒ ๊ฐ๋ค
์ ์์์ด ์ด๋ฒ์ ๋ง๋ ์ฝ๋์ย ๋์๊ฒฐ๊ณผ์
๋ณ๋ก ๋๋จํ ๊ฒ๋ ์์ง๋ง ํน์๋ ๋์์ด ๋ ๊น? ํด์ ๊นํ๋ธ์๋ค ์ผ๋จ ์ฌ๋ ค๋์ผ๋ ๋ณผ์ฌ๋์ ๋ณด์
https://github.com/Jaygan-s/ComponentBasedItem
์๋ชจ์ฑ/๋ฐ๋ํ ์์ดํ ์ ๊ตฌํํ๋ย ๋ถ๋ถ์ ์ฌ๊ธฐ์ ์ ๋ค๋ค์ง๋งย
์ด์ฐจํผ ์ด ๋ฐฉ์์ด๋ ํฌ๊ฒ ๋ค๋ฅด์ง ์์ ๊ฒ ๊ฐ์์ (๊ทธ๋๋ ๋ฌด๊ธฐ ๋ก์ง์ด๋์ ๋ถ๋ฆฌํ๋๊ฒ ๋ง๋๋ฏํจ)
๋ค์์ ์ค์ ๊ฒ์์ ํ๋ฒ ์ ์ฉํด๋ณด๋ ค๊ณ ํจ
์ด๊ฒ์ ๊ฒ ์ผ์ ์ด ์ข ์์ด์ ์ข ๊ฑธ๋ฆด๋ฏํ๋ฐ ์ํผ ๊ฒฐ๊ณผ๋ฌผ ๋์ค๋ฉด ๋ค๊ณ ์ ๋ณผ๊ฒ์ ~
๋๊ธ 1