仅当 VPS 可通过 ARCore-API 卸载附加场景时才不会破坏其游戏对象

问题描述 投票:0回答:1

我目前正在测试连接到 Google ARCore API 的地理空间应用程序。 我将场景附加添加到主场景中,但是当我卸载它们时,即使 UnloadSceneAsync 操作成功完成,游戏对象仍保持在原来的位置。 奇怪的是,只有当应用程序连接到 ARCore API 时才会发生这种情况。如果我在 Google Cloud Console 中禁用 API(因此应用程序只能使用 GPS 和 IMU 进行定位),所有内容都会正确卸载。

在卸载场景后,我尝试使用 Resources.UnloadUnusedAssets() 卸载不必要的资源。 我尝试在卸载场景之前禁用 ARSession,然后重新启用它。 我尝试在卸载场景之前销毁所有地理空间创建器锚点,以防 ARSession 或 EarthManager 不允许卸载这些对象。

更多信息: Android 和 iOS 上都会发生这种情况。我不知道如何使用Unity Editor中的VPS功能,所以我只能在手机上看到这个结果。

我注意到,当 ARSession 未正确初始化时,场景卸载正在工作(如果 Android Resolver 未正确构建项目,有时会发生这种情况)。

每次加载或卸载场景时,操作都会异步发生,并且它们都在等待上一个操作结束。

ARSession 使用第二个场景加载并初始化。第一个场景始终保留并保持活动场景。加载第二个场景后,可以选择并加载几个包含 Geospatial Creator 锚点的附加小场景。

unity-game-engine google-api geospatial arcore ar-foundation
1个回答
0
投票

ARAnchorManager 自动将具有 ARAnchor 或 ARGeospatialAnchor 的每个游戏对象设置为 AR 会话原点下的“可追踪”游戏对象的父级。因此,它还会在附加添加的场景之间移动游戏对象。 按照 此文档 在卸载旧场景并加载新场景之前,我刚刚删除了具有此类组件的所有游戏对象。

我还是不明白为什么只有在连接 ARCore API 时才会发生这种情况。

© www.soinside.com 2019 - 2024. All rights reserved.