public abstract class Card : ScriptableObject
{
[Header("base field")]
public int id;
new public string name;
public Sprite sprite;
public abstract void UseCard();
}
[CreateAssetMenu(fileName = "new offense card", menuName = "Card/Offense Card")]
public class OffenseCard : Card
{
[Header("featured field")]
public int damage;
public override void UseCard()
{
Debug.Log("ํผํด๋ฅผ" + damage + "๋งํผ ์ค๋๋ค");
}
}
[CreateAssetMenu(fileName = "new recovery card", menuName = "Card/Recovery Card")]
public class RecoveryCard : Card
{
[Header("featured field")]
public int recovery;
public override void UseCard()
{
Debug.Log("ํผํด๋ฅผ" + recovery + "๋งํผ ํ๋ณตํฉ๋๋ค");
}
}
๋ฐฉํฅ์ด ๋ง๋์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ๋์ถฉ ์ด๋ฐ์์ผ๋ก ํด๋ณด์ . ๋ฉ์๋ ์ถ๊ฐํ ๊ฑฐ์์ผ๋ฉด ๊ฑ ํ์ํด๋์ค์ ์ถ๊ฐํ๊ณ ํ๋ฉด๋ ๋ฏ
์๊ฐํด๋ณด๋ CardSkill ์ด๋ผ๋ scriptable object๋ฅผ ๋ ๋ง๋ค์ด์ Card์ ๋ฃ์ด์ค์๋ ์๊ฒ ๋ค
ํ์ค์คํค ์นด๋๊ฐ ๋ณดํต ํ ์นด๋์ ์ฌ๋ฌ๊ฐ์ ํจ๊ณผ๊ฐ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์. ํ์์ธ/์ฃผ๋ฌธ์ ๋ฐ๋ผ์ ํผํด/ํ๋ณต/์นด๋๋ฝ๊ธฐ/์ฒ์น/๋ฒ๋ฆฌ๊ธฐ/๊ฐํ/์ํ ์ด๋ฐ ํจ๊ณผ๊ฐ 2~50๊ฐ๊น์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์์ด์ ๋ฉ์๋๋ ํด๋์ค ์์ฑ๋ณด๋จ delegate๋ก ๊ด๋ฆฌํด๋ณด๋ ค๊ณ ํด์...์ข ์ด๋ ต๋ค
๊ฒ๋ ๋ง๋ค;; ๊ทธ๋ฌ๋ฉด public List<SkillData> skillList; ์ด๋ฐ์์ผ๋ก ๋ฆฌ์คํธ ๋ง๋ค๊ณ SkillData๋ผ๋ ์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ๋ฅผ ์์๋ฐ์ ๊ฐ๊ฐ์ ํจ๊ณผ๋ค์ ๋ฆฌ์คํธ์ ๋๋๊ทธํด์ ๋ฃ์ด๋ณด์ .
๋์ค์ ์นด๋์ฌ์ฉํด์ ํจ๊ณผ ๋ฐ๋์ํฌ๋๋ foreach(SkillData skill_data in card.skillList){ skill_data.Activate(); }
์ ์๋ delegate ์ฐ๋๋ฐฉ๋ฒ์ ๊ฒฐ๊ตญ ์ ๋๊ฒ์ ๋๊น...๋ฐํํ
๋ฐ์ดํฐํ์ ๋ง ์ธ์คํํฐ์ ๋จ๋๊น ์๋์ง์์ผ๋ ค๋? ์ ๋ธ๋ฆฌ๊ฒ์ดํธ์จ์ผ๊ฒ ์ผ๋ฉด ์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ๋ฅผ ํฌ๊ธฐํ๋๊ฐ ํด์ผํ ๋ฏํจ ใ ใ