我正在将制作机制统一构建到我的游戏中,但我的数据模型遇到了麻烦:我希望游戏中的每个“Item”都由“ResourceMaterial”组成 我也希望 ReseourceMaterial 从 Item 继承ResourceMaterial 继承自 Item 非常重要,因为 Item 在所有代码中都使用,以便能够在库存中拾取、添加和操作。问题是每个项目都有一个资源材料列表,这些资源材料是项目,因此有一个资源材料列表,这些资源材料是具有资源材料列表的项目,等等......永远。我如何重组它以避免永远的问题?//Here is an example of the classes[System.Serializable]public class Item{ public int ItemID; //from db public string Name; //items name public string Description; //A description of the items uses //...// public List<ResourceMaterial> ResourceMaterials = new List<ResourceMaterial>();}[System.Serializable]public class ResourceMaterial : Item{ public int ResourceID; //from db public int NumberRequired; public int WorkingTime; //time in seconds to use}
1 回答
小唯快跑啊
不要序列化
TA贡献1863条经验 获得超2个赞
不要序列化Item
实例,序列化ItemStack
s
您唯一需要序列化的是Item
它的 ID。就是这样。它们在游戏开始时已经自动构建,您不需要将它们的结构保存到磁盘。
当您反序列化堆栈时,您可以通过 ID 查找Item
已存在的实例并将堆栈指向它。
您可能必须使用比 JsonUtiliy 更详细的序列化系统,例如 JSON .NET,以便您可以编写所需的自定义合约解析器和自定义转换器。
此外,您可能不应该保留如何在 Item 类中创建项目的方法。使用保存您的食谱的食谱管理器。这允许更大的灵活性。
- 1 回答
- 0 关注
- 71 浏览
添加回答
举报
0/150
提交
取消