【问题标题】:Switching between ARKit marker based scenes crashes app在基于 ARKit 标记的场景之间切换会导致应用崩溃
【发布时间】: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 中正常工作。

【问题讨论】:

    标签: c# unity3d arkit


    【解决方案1】:

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

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

    编辑可见性: iPad 在切换 AR 场景时崩溃可以通过更新 Unity 来修复:github.com/Unity-Technologies/arfoundation-samples/issues/94

    【讨论】:

    • 感谢您的提醒,但我已经在我的项目中使用了最新的 ARKit 版本,所以不能这样。
    • 你在什么设备上测试?
    • 一个 iPad 专业版 (2018)
    • 我记得在 iPad 上切换 AR 场景时也发生了崩溃。在看到这个帖子后,我通过将我的 Unity 更新到 2018.3.7(或更高版本)来修复它:github.com/Unity-Technologies/arfoundation-samples/issues/94
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    相关资源
    最近更新 更多