Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Unity Application.LoadLevel在Android设备上冻结游戏_C#_Android_Unity3d - Fatal编程技术网

C# Unity Application.LoadLevel在Android设备上冻结游戏

C# Unity Application.LoadLevel在Android设备上冻结游戏,c#,android,unity3d,C#,Android,Unity3d,我正在开发一个使用Unity的游戏。游戏只有一个关卡,玩家赢/输后,我只想重新加载相同的场景。以下是我使用的代码: private void OnLevelFailed() { IsGameStarted = false; Debug.Log("LEVEL FAILED"); Invoke("RestartLevel",5); } void RestartLevel() { Application.LoadLevel(Application.loadedLeve

我正在开发一个使用Unity的游戏。游戏只有一个关卡,玩家赢/输后,我只想重新加载相同的场景。以下是我使用的代码:

private void OnLevelFailed()
{
    IsGameStarted = false;
    Debug.Log("LEVEL FAILED");
    Invoke("RestartLevel",5);
}

void RestartLevel()
{
    Application.LoadLevel(Application.loadedLevelName);
}
在编辑器上运行此代码时,一切正常,场景按预期重新加载。然而,当我为Android构建游戏并在设备(LG G3)上运行它时,游戏就会冻结。我使用
adb logcat
查看任何异常或错误的日志(如果有),但运气不佳。我还怀疑
Invoke
调用是否导致了问题,并将其替换为简单的方法调用,但这也不能解决问题

有人知道为什么会这样吗

编辑:问题似乎是由我正在使用的预制件引起的,即。它是一个虚拟现实SDK,允许您拥有独立于Unity自己的VR实现的VR摄像机(支持一些VR设备和GearVR,但不支持常规Android设备)


在重新加载之前,我试图从场景中销毁虚拟现实相机,但还是没有解决问题。为什么场景中的某个游戏对象会阻止Application.LoadLevel正常工作?

使用
Application.LoadLevelAsync(Application.loadedLevelName)可能会成功

如果不起作用,考虑创建第二个空白场景。游戏关卡完成后,调用

Application.LoadLevel(Application.blankScene),然后将此脚本放在该空白场景中的游戏对象上:

public class LevelLoader : MonoBehaviour
    {
      void Start()
      {
        StartCoroutine(ReloadLevel());
      }

      IEnumerator ReloadLevel()
      {
        yield return Resources.UnloadUnusedAssets();
        Application.LoadLevel(Application.loadedLevelName);
      }

不幸的是,这不起作用。似乎我也无法加载任何其他场景。但是,如果我从另一个场景开始,并使用您的代码加载我的主场景,它就会工作。我的主场景一定有问题,但我不知道是什么。如果你从那个空白场景开始,然后加载你的主场景,在你的关卡结束后,它是否仍然有效,你再次进入空白>主场景?如果是这样,那实际上可能是一个合适的解决方案。通常你会这样做,因为你需要一个菜单场景。所以进入菜单>主菜单>空白菜单>主菜单>空白菜单>主菜单等等。不,它没有。我无法从主场景导航到任何其他场景。你可以查看我在上面的编辑,了解我发现的关于这个问题的更多信息。你的时间。时间刻度=0吗?如果你使用的是4.x单元,你需要Unity Pro,否则ALPSVR将无法工作。@JeanLuc,我在游戏中的任何地方都没有触及时间刻度。但是,这会导致问题吗?@Puneet我使用的是Unity 5.1。是的,如果时间刻度为0,那么5秒实际上永远不会过去,并且您的方法
RestartLevel
不会被调用