可编写脚本的对象 - 保存动态更改

时间:2017-08-04 05:52:12

标签: c# unity3d

我正在使用可编写脚本的对象来定义成就对象和achievementList(成就数组)对象,其中包含我可以通过Unity编辑器定义的数据。

这些成就本质上是静态的,它们只是定义了这些成就的内容,但没有存储任何与用户相关的数据。

对于与用户相关的存储,我通过Player类使用序列化。现在,我想通过一个可序列化的类来提出保存成就相关状态的最佳方法。

我最初的想法是使用类似的东西:

[Serializable]
public class PlayerAchievements {
    public List<PlayerAchievement> achievements;

}

public class PlayerAchievement {
    public Achievement achievement;
    public bool isCompleted;
}

成就是Scriptable对象,而PlayerAchievement几乎用于存储与特定静态定义的成就相关的状态。我用这种方法看到的问题是我每次都必须搜索静态AchievementList并为每个成就重新创建PlayerAchievement对象。这对我来说效率不高。

人们如何处理此类案件?是否可以以更有效的方式将脚本化对象扩展到另一个类?

1 个答案:

答案 0 :(得分:1)

尝试类似静态成就列表的内容,你将拥有成就ID,名称,描述等。每个玩家应该有完成的成就列表(通过ie id)或bool数组,其中id =该数组的索引。 这是我能想到的最简单的方法。