跳到主要内容

排错指南

附录。开发期可在 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:错误形如 zlua: assembly not found: … / zlua: type not found: …
  • 检查程序集名 / 别名(CSharp['AC'] = CSharp['Assembly-CSharp'])
  • 含 namespace 须 CSharp.AC['Ns.Type']

zlua: member not found: Type.key​

  • 拼写、是否 public、是否在实例上误访静态(或反之)
  • 扩展方法是否已配置到该类型(见 Extension)
  • 探测键是否存在:用 rawget 或 pcall,不要依赖 __index 返回 nil

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

相关文档​