Unity3d 基于游戏中已经存在的预置实例化原始预置

Unity3d 基于游戏中已经存在的预置实例化原始预置,unity3d,Unity3d,我使用预制的游戏水平。 要调试一个级别,我只需将预置拖动到层次视图中,然后按[play] 为了测试级别,我需要一个重放预置的选项,但是由于我将其放入层次结构中,所以我需要一种方法来获取原始预置并再次实例化它。(并销毁当前的活动预制件) 要在游戏中查找当前活动预制件,我只需使用: GameObject gameObj= GameObject.FindWithTag("Level"); 当按下“重播”(重新加载预置的按钮)时,如何获取原始预置并再次实例化它 我确实尝试过使用GetCorrespon

我使用预制的游戏水平。 要调试一个级别,我只需将预置拖动到层次视图中,然后按[play]

为了测试级别,我需要一个重放预置的选项,但是由于我将其放入层次结构中,所以我需要一种方法来获取原始预置并再次实例化它。(并销毁当前的活动预制件)

要在游戏中查找当前活动预制件,我只需使用:

GameObject gameObj= GameObject.FindWithTag("Level");
当按下“重播”(重新加载预置的按钮)时,如何获取原始预置并再次实例化它

我确实尝试过使用
GetCorrespondingObjectFromOriginalSource

这将始终返回null。

场景中的对象没有对它们在运行时来自的预置的引用。运行(或构建)场景时,Unity会打断这些引用。PrefactUtility是一个仅用于编写编辑器代码的编辑器类


如果您想做类似的事情,我建议创建另一个脚本,该脚本引用您希望生成的预置。然后,当游戏开始时(在唤醒或开始时),该脚本可以作为子脚本实例化该预置,并且可以在其上有一个方法,用于销毁该实例,并在您想要重新启动关卡时再次实例化该实例。

我想这只能用于快速调试。谢谢你的来信。