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

如何在WebGL运行时运行其他Unity可执行文件以展示过往游戏?

核心结论:无法在浏览器WebGL运行时直接运行本地EXE文件

浏览器的沙箱安全机制严格限制了网页访问本地可执行文件的权限,WebGL作为浏览器内的图形渲染技术,完全受限于这个安全规则——没有任何合法方式能让WebGL直接调用或内嵌本地EXE,强行尝试会触发浏览器的安全拦截,也不符合Web标准。

可行替代方案(按优先级排序)

1. 将旧游戏打包为WebAssembly(Wasm)/WebGL版本

如果旧游戏使用Unity、Unreal、Godot等支持Web导出的引擎,可直接重新打包为Wasm/WebGL版本:

  • 大部分引擎支持一键导出,无需手动迁移所有资源代码,仅需少量适配(比如调整资源路径、适配浏览器输入逻辑)
  • 导出后的版本可直接内嵌到你的作品集WebGL游戏中(比如通过DOM嵌入或引擎自带的加载器加载),实现真正的“游戏内嵌游戏”效果

2. 用iframe内嵌已有WebGL版本

如果旧游戏已经有WebGL版本:

  • 可在你的作品集WebGL应用的DOM层嵌入一个iframe,指向旧游戏的WebGL页面,实现同页面内嵌展示(无需跳转新网页)
  • 注意:如果你的作品集是纯原生WebGL代码,需要处理DOM与WebGL画布的层级关系,确保iframe能正常显示

3. 制作游戏预览内容

如果打包Wasm成本过高,可选择:

  • 录制旧游戏的核心玩法视频,嵌入到作品集游戏中,搭配文字说明展示游戏特色
  • 提取旧游戏的核心资源,制作一个轻量的交互Demo(比如展示核心机制、美术风格),直接集成到作品集里

4. 桌面端环境的特殊方案(仅适用于非浏览器场景)

如果你的作品集游戏是用Electron等框架打包的桌面WebGL应用:

  • 可通过Node.js的child_process模块调用本地EXE,实现外部启动或嵌入到Electron窗口中(比如用child_process.spawn启动exe)
  • 示例代码(Electron环境):
    const { spawn } = require('child_process');
    // 启动旧游戏exe
    const gameProcess = spawn('path/to/your/old/game.exe');
    
  • 注意:此方案仅适用于桌面端,无法在浏览器环境中运行,且不能将exe内嵌到WebGL画布中,只能作为独立进程或窗口存在
备选方案补充

你提到的“打开新网页加载WebGL版本”是最稳妥的无成本方案,仅需在作品集游戏中添加跳转按钮,引导用户打开旧游戏的WebGL页面,适合快速实现展示需求。

内容的提问来源于stack exchange,提问作者ozaneski13

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 22:45:30