gpt4 book ai didi

c# - Unity 制作的 Oculus Go 应用程序中的 OnQuit 事件?

转载 作者:太空宇宙 更新时间:2023-11-03 16:58:44 24 4
gpt4 key购买 nike

我正在 Unity 中开发 Oculus Go 应用程序,发现退出耳机中的应用程序不会调用 onApplicationQuit()。有谁知道一个好的解决方法吗?我真的需要一些仅在应用关闭时执行的代码。

我试过使用 OnDestroy() 作为解决方法,但它也不会在应用程序关闭时调用。 OnPaused() 在您进入询问您是否要退出的 Oculus 对话框时调用,而不是在您实际选择退出时调用。

最佳答案

如您所述,从 Oculus 菜单退出 Go 上的应用程序时,从未真正调用 OnApplicationQuit()。该应用程序被置于暂停状态,对此几乎无能为力。除了挂接到 native 代码或某些 android java 插件(其细节不是我的专长)之外,没有太多已知的解决方法。

部分原因是因为解决方法确实取决于应用程序的需要,保存状态或 PlayerPrefs 可以在 OnApplicationPause() 方法中完成。

private void OnApplicationPause(bool isPaused)
{
if (isPaused) {
// ..
PlayerPrefs.Save();
}
}

对于单人游戏/用户游戏/应用程序,这可能是最简单的解决方案。对于多人游戏,可以订阅OVR的连接状态改变事件,从反面处理刚刚退出的用户:

using Oculus.Platform;
using Oculus.Platform.Models;
// ...

Net.SetConnectionStateChangedCallback((Message<NetworkingPeer> message) => {
if (message.Data.State == PeerConnectionState.Closed) {
Debug.Log("The user MOST LIKELY quit the app.");
}
});

不是一个完美的解决方案,但由于 OVR 没有在他们的文档中提供任何内容,并且他们没有在他们的论坛中回复关于这个主题的问题,所以这是一个足够好的解决方法。

唯一的其他选择是鼓励用户在您的应用程序中单击某种“退出”按钮,该按钮调用 UnityEngine.Application.Quit(),它将确实调用了 OnApplicationQuit() 方法。

干杯。

关于c# - Unity 制作的 Oculus Go 应用程序中的 OnQuit 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55584865/

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