跳到主要内容

构建流程

Editor(Mono)Play 不需要 per-type C# Wrap;发布 Il2Cpp Player 前必须完成 Generate 与 Lua 同步。语义以 Editor 与 Player 为准。

发布前清单

步骤做什么
1Install(本地 libil2cpp / Lua / zlua 树存在)
2菜单 ZLua/Generate/All(生成 C++ stub,不是 C# Wrap)
3LuaScripts 同步到 StreamingAssets/LuaScripts/*.lua.txt
4Build Settings → Il2Cpp → 目标平台
5真机 / 包体冒烟:Initialize、互调、勿用废弃 Event API

Generate

  • 菜单:ZLua/Generate/All
  • 依赖:本地 Install 树已存在
  • 作用:为 Il2Cpp 生成桥接 stub;改 public API / 换 Lua 系列后应重跑
  • Editor 日常迭代 不必 每次 Generate

Lua 同步到 StreamingAssets

Player 侧 loader 读的是 StreamingAssets,不是工程根 LuaScripts

  1. 复制 Demo 的 SyncLuaScriptsToStreamingAssets.csAssets/Editor/
  2. 构建前由 IPreprocessBuildWithReport 自动执行;也可菜单 Tools → Sync LuaScripts To StreamingAssets
  3. 约定:appStreamingAssets/LuaScripts/app.lua.txt.txt 避免导入冲突)

子模块路径可用点号:battle.aiLuaScripts/battle/ai.lua(loader 内 module.Replace('.', '/'))。详解见 C# 调用 Lua · 模块加载

Editor vs Player(只记差异)

Editor (Mono)Player (Il2Cpp)
Lua 可见语义与 Player 一致与 Editor 一致
实现Expression Emit 等C++ stub + native
Generate不强制必须
脚本路径LuaScripts/*.luaStreamingAssets/.../*.lua.txt

性能对比请以 Player 为准。

常见失败

现象处理
提示未 InstallInstall
Player 无 Lua 输出 / module not found未 Sync 或路径/扩展名错误
Editor 正常 Player 崩未 Generate;或使用了已废弃 Event 糖语法
换 Unity / 换 Lua 版本后异常重跑 Install → Generate

学习路径

上一篇初始化与最小互调
下一篇EmmyLua 调试器

相关文档