在Unity

时间:2016-07-29 22:52:01

标签: unity3d

我有一个有三个场景,两个级别场景和一个菜单场景的游戏。当我第一次在我的关卡场景上按下播放时,一切都很完美,但是当我进入菜单场景然后返回到关卡场景时,

重置了附加到NetworkManager GameObject的脚本的引用。例如,在下图所示的脚本中,除了与我的资产中的预制件链接的所有引用都被重置。

我尝试用代码分配每个变量而不是手动执行,但即使这样也行不通。

这个GameObject确实有dontdestroyonload。为什么这些引用会在此对象上专门重置?

2 个答案:

答案 0 :(得分:1)

我没有足够的回复评论,但是在添加对象的引用后是否保存了场景?

答案(作者:Aaron Ge):我取消选中“不要在加载时销毁并在后台运行”,然后解决了我的问题。我不确定这是如何解决我的问题的,但确实如此。

可能的解释:http://answers.unity3d.com/questions/734445/scripts-in-other-scenes-still-executing.html

如果您对放置在场景中的对象使用DontDestroyOnLoad,请确保您:

仅加载一次该场景。这通常被称为加载场景。场景只包含某些管理器对象,它会立即切换到菜单场景/无论如何......你永远不会再加载第一个场景。

如果要再次加载场景并在一个或多个对象上使用DontDestroyOnLoad,则必须手动销毁对象。您无法阻止再次创建对象,因为它们是场景的一部分。通常,在加载新场景时,al对象会自动销毁,DontDestroyOnLoad会阻止它。

答案 1 :(得分:0)

我取消选中“在加载中运行并在后台运行”,然后解决了我的问题。我不确定这是如何解决我的问题,但确实如此!