我目前正在尝试使用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中都能正常工作。
答案 0 :(得分:0)
在较旧版本的ARKit软件包中切换场景(并重置AR会话)时出现崩溃问题。当您更新到ARKit的较新版本时,该问题应已解决。
查看此线程以获取更多信息: https://forum.unity.com/threads/app-crashes-after-arsession-reset.570763/