PakePlus 中文文档 下载 App

Unity WebGL 打包——构建后 PakePlus 直接套壳

PakePlus 文档明确支持

你的 Unity 项目是不是想要跨平台打包为客户端?也完全没有问题。

原理和 Cocos 一样——Unity 的 WebGL 构建产物本质上是一个包含 index.html、一堆 JS、wasm 文件的静态网站。

Unity 的构建流程

1. 设置 WebGL 平台

  1. 打开 Unity Hub → 打开项目
  2. 菜单 → File → Build Settings
  3. Platform 列表里选 WebGL → 点 Switch Platform
  4. 如果没装 WebGL Build Support:Unity Hub → 安装添加 WebGL 模块

2. WebGL 平台设置

Player Settings → Other Settings:

设置项推荐值原因
ResolutionDefaultPakePlus 会控制窗口尺寸
Run In Background✅ 勾选PakePlus 窗口在后台时游戏继续运行
WebGL Memory Size256 MB(或更高)游戏内存分配,小了会崩
Enable ExceptionsExceptions Only(发布版)减少构建体积
Data Caching✅ 勾选减少重复下载

3. 构建

File → Build Settings → Build。选择一个空输出目录。

4. 产物目录

Build/
├── index.html               ← 入口(可能在 TemplateData/ 旁边的根目录)
├── Build/                   ← 运行时数据
│   ├── xxx.data             ← 游戏数据
│   ├── xxx.framework.js     ← JS 框架
│   ├── xxx.wasm             ← WebAssembly
│   └── xxx.loader.js        ← 加载器
└── TemplateData/            ← HTML 模板资源
    ├── style.css
    └── background.jpg

Unity WebGL 的产物结构可能因 Unity 版本不同略有变化——关键是找到包含 index.html + Build/ + TemplateData/ 的那个根目录。

PakePlus 打包步骤

  1. 创建项目 → 软件配置页面的"网站地址"选 包含 index.html 的那个根目录
  2. 预览 → 确认游戏正常加载(等待 wasm 初始化完)
  3. 发布 → 云端或本地

关键注意事项

Unity WebGL 是 WASM,不是纯 JS

这点和其他 Web 项目不同——Unity 编译出来的是 WebAssembly(.wasm) 文件,体积大(通常 20-50MB+),加载时间长。

阶段耗时
PakePlus 启动<1 秒
WebView 加载 index.html<1 秒
下载 wasm + .data3-30 秒(取决于文件大小和设备性能)
WASM 初始化 + 场景加载1-10 秒
总计5-40 秒

PakePlus 里加载 Unity 游戏会有明显等待——用户看到的是一个 loading 界面(Unity 默认提供的),等 WASM 加载完才进入游戏。这是 WebGL 的固有特性,不是 PakePlus 的问题。

文件大小可能爆 GitHub 限制

Unity WebGL 构建产物的总大小通常在 50-200MB 之间:

云端打包注意:如果单个 .data 或 .wasm 文件超过 GitHub 单文件 100MB 限制,push 会失败。

打包方式建议
云端打包如果 Unity 产物 <100MB,没问题。大了就改走本地,或者用资源拆分
本地打包✅ 最稳,无限制

Memory Size 设置

PakePlus WebView 有默认的内存限制(Windows 上 WebView2 比较宽松,macOS WKWebView 也不错)。如果 Unity WebGL 运行时崩溃(Exit Code 137 或白屏):

  1. 增大 Unity Player Settings 里的 WebGL Memory Size
  2. 检查游戏是否有内存泄漏

Input 事件

Unity WebGL 的 input(键盘、鼠标、触控)在 PakePlus WebView 里能正常工作:

为什么用 PakePlus 而不是原生导出

对比项Unity 原生各平台导出PakePlus WebGL 套壳
构建速度各平台各编译一次(总共几十分钟)WebGL 一次 + PakePlus 30 秒
最终体积APK/EXE 通常 100-300MBWebGL 产物 + PakePlus 壳 ≈ 5MB + 游戏数据
各平台一致性需要各平台分别测试一套代码高度一致
原生能力完整受限(不支持 Gamepad、陀螺仪等)
支持的 Unity 功能全部WebGL 不支持的功能(如原生 Plugin、部分平台特性)会跳过

结论:轻量级、不依赖原生硬件能力的游戏(卡牌、益智、策略)→ PakePlus 套壳非常合适。重度 3D、依赖手柄/传感器的游戏 → 原生导出更合适。