I make ScriptableObject to use local Database.
It includes lists of “Skill”.
Skills are inherited from SkillBase class.
And effect of Skill is written in override method.
Then, I added inherited Skill classes to List , and deserialize it in Game.
However, it’s effect does not act.
I guess ScriptableObject cannot deserialize with Polymorphism.
How shuold I do.
DataTable.cs
public class DataTable : ScriptableObject
{
public List<SkillBase> SkillTable = new List<SkillBase> ();
}
SkillBase.cs
[System.Serializable]
public class SkillBase
{
public virtual void SkillExecute ()
{
}
}
[System.Serializable]
public class Skill1 : SkillBase
{
public override void SkillExecute ()
{
}
}
[System.Serializable]
public class Skill2 : SkillBase
{
public override void SkillExecute ()
{
}
}