我正在使用可编写脚本的对象来定义成就对象和achievementList(成就数组)对象,其中包含我可以通过Unity编辑器定义的数据。
这些成就本质上是静态的,它们只是定义了这些成就的内容,但没有存储任何与用户相关的数据。
对于与用户相关的存储,我通过Player类使用序列化。现在,我想通过一个可序列化的类来提出保存成就相关状态的最佳方法。
我最初的想法是使用类似的东西:
[Serializable]
public class PlayerAchievements {
public List<PlayerAchievement> achievements;
}
public class PlayerAchievement {
public Achievement achievement;
public bool isCompleted;
}
成就是Scriptable对象,而PlayerAchievement几乎用于存储与特定静态定义的成就相关的状态。我用这种方法看到的问题是我每次都必须搜索静态AchievementList并为每个成就重新创建PlayerAchievement对象。这对我来说效率不高。
人们如何处理此类案件?是否可以以更有效的方式将脚本化对象扩展到另一个类?
答案 0 :(得分:1)
尝试类似静态成就列表的内容,你将拥有成就ID,名称,描述等。每个玩家应该有完成的成就列表(通过ie id)或bool数组,其中id =该数组的索引。 这是我能想到的最简单的方法。