跳到主要内容

排错指南

附录。开发期可在 Editor(Mono) 快速迭代;Player 问题先确认 ZLua/Generate/All兼容性。主线学习请从 安装 起。

Canonical 工程:zlua-demo


安装与启动

Play 后完全无 Lua 输出

检查项说明
LuaAppDomain.Initialize[RuntimeInitializeOnLoadMethod(BeforeSceneLoad)] 或更早
Console 过滤器确认未隐藏 Log

module 'xxx' not found

检查项EditorPlayer
文件路径{ProjectRoot}/LuaScripts/xxx.luaStreamingAssets/LuaScripts/xxx.lua.txt
Sync可选必须 Sync 脚本

类型与成员访问

类型为 nil

  • 程序集名 / 别名是否正确(CSharp['AC'] = CSharp['Assembly-CSharp']
  • 含 namespace 须 CSharp.AC['Ns.Type']

Event .get / .set 为 nil

已废弃。改用 add_OnX / remove_OnX。见 Event


EmmyLua 调试

断点不生效、连不上、Play 假死:见 EmmyLua 调试器sourcePaths、端口、waitIDE)。


C# 调用 Lua

GetFunction 无效

  • 是否已 LuaAppDomain.Initialize
  • module / method 是否与 Lua return { ... } 键名一致
  • Lua 模块是否 return { method = ... }
  • 是否刚 Reset:旧委托已作废,须重新 GetFunction

再次 Initialize 抛异常

已有主 lua_State 时须 LuaAppDomain.Reset(loader)不能再次 Initialize「只换 loader」。详见 LuaAppDomain


Editor 正常、Player 失败

检查说明
GenerateIl2Cpp 必须 Generate C++ stub
StreamingAssetsLua 是否 Sync
废弃 API勿用 Event .get

学习路径

上一篇迁移指南
下一篇Editor 与 Player

相关文档