如何保持场景状态?

时间:2018-09-22 18:54:48

标签: c# unity3d

我正在制作一个游戏,其中每个场景都需要在保存的游戏中保持其当前状态,并且在从场景A移到场景B再回到场景A时也要保持不变。例如,我想跟踪每个NPC的状态位置,击败了哪些怪物,打开了哪些箱子等。由于每次加载同一场景时每个对象都以其原始状态重新加载,因此我无法找到一种方法来保存游戏对象状态,而无需在场景卸载时手动保存对象的每个属性,然后重新应用每个保存的属性当加载同一场景时。这也带来了唯一标识游戏中每个对象的挑战。

现在,我制作了一个脚本,当脚本作为组件添加时,该脚本将GUID分配给游戏对象,然后手动保存要保留的每个属性,并在重新加载场景时手动应用每个保存的属性。可行,但是对于许多游戏所需的功能而言,似乎需要做很多工作。我还觉得很奇怪,我必须编写自己的脚本才能为每个游戏对象分配一个GUID,因为似乎在场景加载之间唯一地标识对象是很多游戏都需要的。 GetInstanceID()不起作用,因为每次加载场景时,场景中的同一对象的GetInstanceID()都有不同的值。

我想念已经存在的东西吗?

0 个答案:

没有答案