2

我有个问题...

我的游戏中有四个场景:开场场景、选择玩家场景、实际游戏场景和游戏结束场景。

当我额外加载实际的游戏场景时遇到问题

Application.LoadLevel("Let's play the game!") 

这就是我离开这个场景的方式:

if(GUI.Button (new Rect (x, y, w, h), "Quit", buttonStyle))
{
   Application.Quit();
   Application.LoadLevel("Opening Screen");
}

当我第二次加载我想要的关卡时,相机应该跟随第一个玩家。这没有发生。我提供了一个“重启”选项,可以解决这个问题,但我不希望这个事件首先发生。

更严重的问题是动态加载的游戏对象。我收到“'GameObject' 已被破坏,但您仍在尝试访问它。” 我不确定这是从哪里来的,因为我在任何地方都看不到我之前所说的“毁灭”。此外,当我在 Unity 中运行应用程序时,动态创建的对象确实出现在层次结构中。

我认为我的问题的根源在于失败的相机,但我不确定如何修复它。

有人有什么建议吗?

4

1 回答 1

3

听起来您需要确保调用DontDestroyOnLoad以在关卡加载之间将对象保留在内存中:

DontDestroyOnLoad(gameObjectToPreserve);

此外,您示例中的以下代码将在您的应用程序加载“打开屏幕”之前退出您的应用程序:

if(GUI.Button (new Rect (x, y, w, h), "Quit", buttonStyle))
{
   Application.Quit();
   Application.LoadLevel("Opening Screen");
}

如果您打算返回到初始屏幕,请删除“Application.Quit()”行。您不会在编辑器的预览模式中看到这个问题,因为 Application.Quit() 在那里没有做任何事情。

于 2013-03-17T04:00:42.520 回答