gpt4 book ai didi

java - ARCore session 未重新启动

转载 作者:行者123 更新时间:2023-11-30 10:25:05 25 4
gpt4 key购买 nike

使用 Google ARCore,当我在我构建的游戏中时,我有一个重启按钮来清除场景并重启关卡。我是通过使用 Scenemanager.LoadScene() 重新加载场景来做到这一点的,但是当场景重新加载时,相机没有初始化,只是显示一个蓝屏,我的 UI 位于顶部。

我可以在代码中使用什么来确保在重新加载场景时不会发生这种情况吗?

最佳答案

在 ARCore NDK 中,您可以使用以下方法销毁 session 并释放其资源:

void ArSession_destroy(
ArSession *session
)

此方法释放 ARCore session 使用的资源。需要几秒钟才能完成。为防止阻塞主线程,在主线程上调用ArSession_pause(),然后在后台线程上调用ArSession_destroy() .

然后,您必须创建一个新 session :

ArSession_create()

此外,在 ARCore Android 中,当前 session 通常有 onPause()onResume() 方法.但我使用了另外两个:pause() 用于暂停当前 session ,resume() 用于启动或恢复 ARCore 当前 session 。

在 Unity 中,您应该根据自己的目的尝试使用 DestroyImmediate(session)Destroy(session)

ARCoreSession session = goARCoreDevice.GetComponent<ARCoreSession>();
ARCoreSessionConfig myConfig = session.SessionConfig;
DestroyImmediate(session);
// Destroy(session);
yield return null;
session = goARCoreDevice.AddComponent<ARCoreSession>();
session.SessionConfig = myConfig;
session.enabled = true;

关于java - ARCore session 未重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46401101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com