You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 03:36:03