Unity开发HoloLens 2应用如何自动关闭启动闪屏残留白框
HoloLens 2 UWP应用退出残留白框解决方案
你遇到的残留白框本质是UWP应用的核心视图窗口未在退出逻辑中被正确销毁,确实属于UWP应用生命周期管理范畴,可通过以下C#代码及配置解决:
解决方案步骤
1. 添加UWP退出管理脚本
在Unity项目中新建全局生命周期管理脚本,示例代码如下:
using UnityEngine; public class UWPCleanExitManager : MonoBehaviour { private void Awake() { // 全局常驻,避免场景切换时被销毁 DontDestroyOnLoad(gameObject); // 监听Unity原生退出事件 Application.quitting += HandleAppExit; } private void HandleAppExit() { #if ENABLE_WINMD_SUPPORT // 调用UWP原生API强制销毁应用核心窗口 Windows.ApplicationModel.Core.CoreApplication.Exit(); #endif } // 可绑定到自定义退出按钮的点击事件 public void ManualTriggerExit() { // 若使用MRTK开发,先释放MRTK服务资源 #if MRTK_ENABLED Microsoft.MixedReality.Toolkit.CoreServices.ShutdownAllServices(); #endif Application.Quit(); } }
2. 脚本配置
将上述脚本挂载到初始场景的全局常驻对象上(例如项目的全局管理根节点),确保应用运行全程脚本不会被销毁。
3. 可选补充配置
如果仍存在白框残留,可额外检查以下配置:
- 打开
Edit > Project Settings > Player > UWP > Splash Screen,取消勾选 Show Splash Screen,避免闪屏窗口未正常销毁 - 打包生成UWP项目后,打开生成项目中的
App.xaml.cs,在OnSuspending生命周期回调中添加CoreApplication.Exit()调用,确保应用挂起时主动销毁窗口
注意事项
ENABLE_WINMD_SUPPORT为Unity专属UWP平台编译宏,仅在打包UWP项目时生效,不会影响编辑器内调试- 若使用第三方插件管理应用生命周期,需确保插件的退出逻辑和上述代码没有冲突
内容的提问来源于stack exchange,提问作者J.R Chen
相关产品推荐
相关产品推荐

