【发布时间】:2019-07-23 23:35:54
【问题描述】:
我目前正在尝试使用 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);
}
我认为我需要重置 imageanchor 场景(基于标记)以修复切换场景之间的崩溃,但我不知道如何重置基于标记的场景,因为这似乎需要不同的重置。
我目前加载场景的方式如下;
SceneManager.LoadScene("Marker", LoadSceneMode.Single);
当满足某些条件(标记/无标记切换和场景名称)时,此部分会触发。这一切都在 Unity 中正常工作。
【问题讨论】: