在基于ARKit标记的场景之间切换会导致应用崩溃

时间:2019-07-19 14:19:35

标签: c# unity3d arkit

我目前正在尝试使用ARKit在不同场景之间切换,我有3个无标记场景和3个基于标记的场景。但是问题是,当从一个基于标记的场景切换到另一个场景时,应用程序崩溃并在xcode中出现SIGABRT错误。

UIApplicationMain(argc, argv, nil, [NSString stringWithUTF8String: AppControllerClassName]);

我之前在无标记场景之间切换时遇到了同样的问题,但是我终于想出了如何通过重置场景来解决此问题的方法:

public void ResetScene()
   {
       ARKitWorldTrackingSessionConfiguration sessionConfig = new ARKitWorldTrackingSessionConfiguration(UnityARAlignment.UnityARAlignmentGravity, UnityARPlaneDetection.Horizontal);
       UnityARSessionNativeInterface.GetARSessionNativeInterface().RunWithConfigAndOptions(sessionConfig, UnityARSessionRunOption.ARSessionRunOptionRemoveExistingAnchors | UnityARSessionRunOption.ARSessionRunOptionResetTracking);
   }

我认为我需要重置图像锚场景(基于标记)以解决切换场景之间的崩溃问题,但是我不知道如何重置基于标记的场景,因为这似乎需要进行其他重置。

我当前加载场景的方式如下;

SceneManager.LoadScene("Marker", LoadSceneMode.Single);

在满足某些条件(标记/无标记切换和场景名称)时触发此部分。这一切在Unity中都能正常工作。

1 个答案:

答案 0 :(得分:0)

在较旧版本的ARKit软件包中切换场景(并重置AR会话)时出现崩溃问题。当您更新到ARKit的较新版本时,该问题应已解决。

查看此线程以获取更多信息: https://forum.unity.com/threads/app-crashes-after-arsession-reset.570763/