【踩坑记录】使用 Layui 框架时解决 Unity WebGL 渲染在 Tab 切换时黑屏问题

【踩坑记录】使用 Layui 框架时解决 Unity WebGL 渲染在 Tab 切换时黑屏问题

【踩坑记录】使用 Layui 框架时解决 Unity WebGL 渲染在 Tab 切换时黑屏问题

在开发 Web 应用时,尤其是集成了 Unity WebGL 内容的页面,遇到一个问题:当 Unity WebGL 渲染内容嵌入到一个 Tab 中时,切换 Tab 后画面会变黑,直到用户点击黑屏区域,才会恢复显示。

这个问题通常是因为 Unity 渲染在 Tab 切换时被暂停或未能获得焦点所致。

在本文中,我们将介绍如何在使用 Layui 框架时,通过监听 Tab 切换事件并强制 Unity WebGL 渲染恢复,来解决这一问题。

1. 问题描述

当 Unity WebGL 内容嵌入到页面中的多个 Tab 中时,用户切换 Tab 时,Unity 渲染内容可能会变黑。问题的根源通常是 Unity 渲染在 Tab 切换后没有正确地恢复,导致渲染被暂停或者丢失。

2. 解决思路

要解决这个问题,关键是确保每次切换到包含 Unity WebGL 的 Tab 时,Unity 渲染能够继续运行。具体思路如下:

  • 监听 Tab 切换事件:通过 Layui 框架提供的事件,监听 Tab 切换,获取当前激活的 Tab。
  • 强制 Unity canvas 获取焦点:每当 Tab 切换时,通过 JavaScript 强制切换到的 Tab 中的 Unity canvas 元素获得焦点,这样 Unity 渲染就能继续正常显示。

3. 解决方案实现

步骤 1:监听 Tab 切换事件

Layui 框架中的 element 模块提供了 tab 事件,可以用于监听 Tab 的切换。当 Tab 切换时,可以通过事件获取到当前活动 Tab 的索引值,并确定哪个 Tab 中包含 Unity WebGL 内容。

步骤 2:获取当前 Tab 中的 Unity canvas

Unity WebGL 通常嵌入在一个 iframe 中,iframe 内部包含 Unity 渲染的 canvas 元素。在 Tab 切换时,我们需要访问该 iframe,并获取其中的 Unity canvas 元素。

步骤 3:强制获取焦点

JavaScript 的 focus() 方法可以确保 canvas 元素获得焦点,从而恢复 Unity 的渲染。

完整代码实现
layui.use(['element'],function(){var element = layui.element;// 监听 Tab 切换事件 element.on('tab(xbs_tab)',function(data){// 获取当前选中的 tab 对应的 iframevar activeTabId = data.index;var iframe =$('.x-iframe').eq(activeTabId);// 获取当前 tab 对应的 iframe// 获取 iframe 中的 Unity canvas 元素,若存在,则主动获取焦点var unityCanvas = iframe.contents().find('#unity-canvas')[0];if(unityCanvas){ unityCanvas.focus();// 强制 Unity canvas 获取焦点}});});

4. 代码解析

  • layui.use(['element'], function() {...}):加载 Layuielement 模块,使用 element 模块来处理 Tab 事件。
  • element.on('tab(xbs_tab)', function(data) {...}):监听 tab(xbs_tab) 事件,用户切换 Tab 时触发该回调函数。
  • $('.x-iframe').eq(activeTabId):通过 activeTabId 获取当前选中的 Tab 对应的 iframe 元素。
  • iframe.contents().find('#unity-canvas')[0]:获取当前 iframe 中的 Unity WebGL canvas 元素。
  • unityCanvas.focus():强制 Unity canvas 获取焦点,确保渲染恢复。

5. 测试与优化

在实现了上述代码后,切换 Tab 时 Unity 渲染应能正常恢复。如果仍然存在渲染延迟或异常的情况,可以尝试以下优化措施:

  • Tab 切换时延迟处理:如果需要在 Unity WebGL 内容加载完成后再恢复渲染,可以在切换 Tab 后稍作延迟再调用 focus() 方法。
  • 确保 iframe 加载完成:确保 iframe 中的内容加载完成后再进行焦点恢复操作。可以通过监听 iframe 的加载事件来控制焦点的恢复时机。

6. 总结

通过监听 Layui 框架的 Tab 切换事件并强制 Unity WebGL 的 canvas 元素获取焦点,我们成功解决了 Unity 渲染在 Tab 切换时变黑的问题。这个方法简单有效,不依赖于浏览器的 focusvisibilitychange 事件,因此在 Tab 切换时能够稳定地恢复渲染。

如果你在开发过程中遇到类似问题,希望本篇博客能为你提供一些帮助和启发。如果有任何问题或其他解决方案,欢迎在评论区交流!

Read more

【大模型微调】LLaMA Factory 微调 LLMs & VLMs

【大模型微调】LLaMA Factory 微调 LLMs & VLMs

LLaMA Factory是一个大模型高效微调平台,在github有60k多收藏了,很适合入门的朋友 提供了“ 一站式”的操作界面,通过可视化操作,就可以完成对LLMs 或 VLMs的微调了 开源地址:https://github.com/hiyouga/LLaMA-Factory 下面是微调的页面,简洁、清晰、功能多: 目录 一、LLaMA Factory的特色 二、支持的模型 三、提供的数据集(基础) 四、安装LLaMA Factory  五、微调LLM实践--Qwen3-4B-Thinking  六、微调VLM实践--Qwen/Qwen2.5-VL-3B-Instruct 七、了解源代码 八、其他参考资料 一、LLaMA Factory的特色 * 多种模型:LLaMA、LLaVA、Mistral、

本地文件深度交互新玩法:Obsidian Copilot的深度开发

本地文件深度交互新玩法:Obsidian Copilot的深度开发

前言 当 “本地知识库管理” 撞上 “AI 智能分析”,会擦出怎样的火花?试想一下:你的 Obsidian 里存着多年积累的笔记、文档,却只能手动翻阅检索;而现在,一个插件 + 蓝耘 API,就能让这些 “静态文字” 瞬间 “活” 起来 —— 自动总结核心内容、智能回答专业疑问,甚至挖掘隐藏关联!今天,就带大家拆解 Obsidian 联动蓝耘 API 的全新玩法,看看如何让本地文件从 “信息仓库” 变身 “智能助手” 。 蓝耘API KEY的创建 先进行API的创建 先点击蓝耘进行一个正常的注册流程 进入到主页之后,我们点击上方的MaaS平台 进入到平台后我们可以看到很多的大模型 不仅仅是文本生成、音频理解、视频理解还是视频生成,都有对应的大模型 每个模型都有很详细的介绍以及价格示例,用过api调用的都可以看到这个价格还是比较贴近平民的 并且可以进行在线体验的,这里是先进行思考的,

Qwen3-VL + LLama-Factory进行针对Grounding任务LoRA微调

Qwen3-VL + LLama-Factory进行针对Grounding任务LoRA微调

0.官方GitHub网站: GitHub - QwenLM/Qwen3-VL:Qwen3-VL 是由阿里云 Qwen 团队开发的多模态大语言模型系列。https://github.com/QwenLM/Qwen3-VL 空间感知能力大幅提升:2D grounding 从绝对坐标变为相对坐标,支持判断物体方位、视角变化、遮挡关系,能实现 3D grounding,为复杂场景下的空间推理和具身场景打下基础。 OCR 支持更多语言及复杂场景:支持的中英外的语言从 10 种扩展到 32 种,覆盖更多国家和地区;在复杂光线、模糊、倾斜等实拍挑战性场景下表现更稳定;对生僻字、古籍字、专业术语的识别准确率也显著提升;超长文档理解和精细结构还原能力进一步提升。 一是采用 MRoPE-Interleave,原始MRoPE将特征维度按照时间(t)、高度(h)和宽度(w)的顺序分块划分,

2025.10.17 更新 AI绘画秋葉aaaki整合包 Stable Diffusion整合包v4.10 +ComfyUI整合包下载地址

2025.10.17 更新 AI绘画秋葉aaaki整合包 Stable Diffusion整合包v4.10 +ComfyUI整合包下载地址

2025.10.17 更新 AI绘画秋葉aaaki整合包 Stable Diffusion整合包v4.10 +ComfyUI整合包下载地址 * @[TOC](2025.10.17 更新 AI绘画秋葉aaaki整合包 Stable Diffusion整合包v4.10 +ComfyUI整合包下载地址) * 🌈 Stable Diffusion整合包(秋葉aaaki整合版) * 📦 【下载链接】 * 💡 英特尔 CPU 用户特别提醒 * 🔧 AMD 显卡专用方案 * ⚙️ 常见问题与解决方案 * 🧠 ComfyUI 整合包(秋葉aaaki定制优化版) * 📥 【下载链接】 * 🚀 更新日志(2025.2.4 v1.6) * 🧩 报错解决 关键词建议(自动覆盖百度、必应等搜索) AI绘画整合包下载、Stable Diffusion整合包、ComfyUI整合包、秋葉aaaki整合包、AI绘图工具、AI绘画模型、