์ž‘์—…ํ•˜๋‹ค๊ฐ€ Polymorphicํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ์—ˆ๋Š”๋ฐ ๊ฒ€์ƒ‰ํ•ด๋„ ๋”ฑํžˆ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์ด ์—†๋”๋ผ๊ณ 


๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ๋‚ด ๋ฐฉ์‹๋Œ€๋กœ ํ•ด๋ดค๋Š”๋ฐ ๊ณต์œ ํ•ด๋ด„



๋ชฉํ‘œ๋Š” ์ปค์Šคํ…€ ์ธ์ŠคํŽ™ํ„ฐ ์•ˆ๋งŒ๋“ค๊ณ  ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์„ ์œ„ํ•œ ์ฝ”๋“œ ์ž‘์—…๋Ÿ‰์„ ์ตœ์†Œํ™”ํ•˜๋ฉด์„œ ์จ๋จน์„๋งŒํ•œ ์ˆ˜์ค€์˜ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๋Šฅ๋ ฅ์„ ๊ฐ€์ง€๋Š” ๊ฑฐ์˜€์Œ.




ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋Š” Effect ํด๋ž˜์Šค์™€ ๊ทธ๊ฒƒ์„ ์ƒ์†๋ฐ›๋Š” DamageEffect, BuffEffect, StatEffect ๋“ฑ๋“ฑ.


ํšจ๊ณผ์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฆ„. DamageEffect๋Š” ๋ฐ๋ฏธ์ง€๊ฐ’, BuffEffect๋Š” ์ง€์†์‹œ๊ฐ„, ์Šคํƒฏ ์กฐ์ •๊ฐ’


Skill ํด๋ž˜์Šค๋Š” Effect์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์„œ 'DamageEffect๋กœ ๋ฐ๋ฏธ์ง€ ์–ผ๋งˆ๋ฅผ ์ฃผ๊ณ  BuffEffect๋กœ ๋””๋ฒ„ํ”„๋ฅผ ์ค€๋‹ค' ๋ผ๋˜๊ฐ€,


ํ˜น์€ ๋” ๋ณต์žกํ•˜๊ฒŒ 'ํŠน์ • ์ƒํ™ฉ'์—์„œ 'ํŠน์ • Effect'๋ฅผ ๋ฐœ๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ์–ด์•ผ ํ–ˆ์Œ.




Skill ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ง€๋Š” Prefab์„ ๋งŒ๋“ค์–ด์„œ ์Šคํ‚ฌ๋งˆ๋‹ค ํ•„์š”ํ•œ Effect๋ฅผ ์ปดํฌ๋„ŒํŠธ๋กœ ์ถ”๊ฐ€ํ–ˆ์Œ.


Effect๋Š” ๋ฌธ์ž์—ด ๋ณ€์ˆ˜ key๋ฅผ ํ•˜๋‚˜์”ฉ ๊ฐ€์ง.


Skill์€ ์ƒ์„ฑ๋  ๋•Œ ์ž์‹ ์ด ๊ฐ€์ง„ Effect ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ „๋ถ€ ์ฐพ์•„์„œ ๊ทธ๊ฒƒ๋“ค์˜ key ๋ฌธ์ž์—ด๋กœย Dictionary๋ฅผ ๋งŒ๋“ค๋„๋ก ํ•จ.

(Dictionary<string, Effect> ํ•ด์„œ Key๊ฐ’์— Effect.key๋ฅผ ๋„ฃ๋Š” ์‹์œผ๋กœ)


์ด๊ฑธ๋กœ Skill ํด๋ž˜์Šค์—์„  ์ž์‹ ์ด ๊ฐ€์ง„ Effect ์ปดํฌ๋„ŒํŠธ์˜ Key๊ฐ’์„ ๊ฐ€์ง€๊ณ  ๊ทธ๊ฒƒ์„ ์–ธ์ œ๋“ ์ง€ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋จ.


์ดํ›„์—” ์Šคํ‚ฌ๋งˆ๋‹ค Skill์˜ ์ž์‹ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด์„œ Dictionary[key]๋ฅผ ํ™œ์šฉํ•ด์„œ ๋™์ž‘์„ ์งœ๋ฉด ๋จ.



๋‚˜๋Š” ์—ฌ๊ธฐ์„œ ์กฐ๊ธˆ ๋” ์‘์šฉํ•ด์„œ ๊ฒŒ์ž„ ์•ˆ์—์„œ Skill์— ํŠน์ • Effect๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ์ถ”๊ฐ€๊ธฐ๋Šฅ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์—ˆ์Œ.


ํžˆ์˜ค์Šค์˜ ํŠน์„ฑ๊ฐ™์€๊ฑฐ๋ผ ์ƒ๊ฐํ•˜๋ฉด ๋จ.


๊ทธ๋ƒฅ ๋ฐ๋ฏธ์ง€ ์–ผ๋งˆ๋ฅผ ์ž…ํžˆ๋Š” ์Šคํ‚ฌ์—ย [์ ์˜ ์ฒด๋ ฅ์ด 50% ์ดํ•˜๋ฉด ์ถ”๊ฐ€๋ฐ๋ฏธ์ง€ ์–ผ๋งˆ ์ค€๋‹ค] ๋ผ๋Š” Effect๋ฅผ ๋ถ™์ด๋Š” ์‹์œผ๋กœ.