我使用Scriptable Objects来创建Unity游戏中的物品。比如说我创建了一个棍子、一把剑和一个头盔。为了使用它们,我需要将它们拖到列表中,并在游戏开始时为每个物品分配一个ID,该ID也是它在列表中的位置,因为我只需遍历列表来分配ID。现在,我可以通过使用它的索引来访问该物品,或者按照大多数关于ScriptableObjects的教程所示,我们可以将物品和ID添加到字典中以更好地访问它们。
棍子为0,剑为1,头盔为2。现在我决定用一个补丁来移除剑,这样头盔就会得到ID 1。现在每个存档都已经崩溃了,因为剑变成了头盔。
我如何处理分配固定ID的问题,以便这些ID不会改变,而且不会被其他物品占用,直到我真正想要再次分配它?当然,我可以为我创建的每个ScriptableObject硬编码ID,但正如你可以想象的那样,管理硬编码ID似乎不是一个好主意。
棍子为0,剑为1,头盔为2。现在我决定用一个补丁来移除剑,这样头盔就会得到ID 1。现在每个存档都已经崩溃了,因为剑变成了头盔。
我如何处理分配固定ID的问题,以便这些ID不会改变,而且不会被其他物品占用,直到我真正想要再次分配它?当然,我可以为我创建的每个ScriptableObject硬编码ID,但正如你可以想象的那样,管理硬编码ID似乎不是一个好主意。