minigame-tuanjie-transform-sdk/Editor/PCHighPerformance/README_AutoInjection.md
2026-03-25 11:24:23 +08:00

2.9 KiB
Raw Blame History

PC高性能小游戏 - 自动化构建注入

📂 文件结构

WX-WASM-SDK-V2/
├── Editor/PCHighPerformance/
│   ├── PCHPBuildPreProcessor.cs    # 构建预处理器(自动注入)
│   ├── PCHPDebugHelper.cs          # 调试工具
│   ├── WXPCSettingHelper.cs        # 构建配置助手
│   └── WXEditorPCHPWindow.cs       # 编辑器窗口
└── Runtime/
    └── WXPCHPInitScript.cs         # SDK 运行时脚本

🎯 功能说明

自动注入机制

触发时机开发者点击「生成并转换」按钮Unity 开始构建 Windows/macOS 平台前

工作流程

构建开始
    ↓
PCHPBuildPreProcessor.OnPreprocessBuild() 触发
    ↓
Step 1: 检查 WXPCHPInitScript 是否已加载
    ├── 已加载 → 继续
    └── 未加载 → 报错中断SDK 安装问题)
    ↓
Step 2: 打开首个启用场景
    ↓
Step 3: 检查场景是否已有 "WXPCHPInitScript" GameObject
    ├── 有 → 删除重建
    └── 没有 → 创建新 GameObject + 添加 WXPCHPInitScript 组件
    ↓
Step 4: 保存场景并恢复原始布局
    ↓
继续正常构建流程

关键特性

  1. 零侵入:不修改开发者当前打开的场景
  2. 智能检测:自动检测是否已存在脚本/对象
  3. SDK 内置:脚本位于 SDK Runtime 目录,无需复制到用户项目
  4. 命名空间隔离:使用 WeChatWASM 命名空间避免冲突

🔧 配置说明

脚本位置

Assets/WX-WASM-SDK-V2/Runtime/WXPCHPInitScript.cs

类名WeChatWASM.WXPCHPInitScript

作用:运行时初始化 PC 高性能小游戏 SDK与宿主程序通信


🐛 常见问题

Q: 为什么导出的工程没有 SDK 对象?

检查 Console 日志:

  • [PC高性能小游戏] ✅ 已在 XXX 中创建 WXPCHPInitScript 并添加组件 → 成功
  • ⚠️ 找不到 WXPCHPInitScript 类型 → SDK 未正确安装

Q: DLL 加载失败?

原因direct_applet_sdk.dll 必须在 运行时 的根目录(与 .exe 同级)

解决:确保宿主程序启动时提供 DLL


📝 技术细节

触发接口 IPreprocessBuildWithReport
回调优先级 callbackOrder = 0
支持平台 Windows x64, macOS
场景修改策略 临时打开 → 注入 → 保存 → 恢复
类全名 WeChatWASM.WXPCHPInitScript

🔄 更新日志

v1.1.0 (2026-03-02)

  • 重命名 EmbeddedAppletSDKWXPCHPInitScript
  • 迁移脚本到 Runtime 目录(解决 Editor 脚本无法挂载问题)
  • 添加 WeChatWASM 命名空间
  • 移除模板复制机制(脚本现在内置于 SDK

v1.0.0 (2026-03-02)

  • 实现自动注入 EmbeddedAppletSDK GameObject
  • 智能检测并复制模板脚本
  • 兼容 Windows 和 macOS 构建