-
Notifications
You must be signed in to change notification settings - Fork 546
LUA cn
初始化
Window -> Lua设置编辑器 -> Lua项目初始化
初始化所做的事情:
* 创建导出列表文件,用来声明哪些类会被Lua调用,位置在 Assets/Script/UI/Editor/Lua/LuaExportList.cs
* 创建空LuaBinder文件,该文件会自动生成
* 把框架自带的Lua库复制到Resources/LuaLib
1. LuaDataHelper
2. LuaStatusManager
3. LuaUIManager
4. LuaUpdater
5. LuaEventDispatcher
6. LuaJson
7. LuaPrintTable
* 自动生成 Lua配置文件,用于记录哪些文件是Lua文件
* 创建Lua启动文件,包括一个lua主函数,游戏开始时会调用它
* 添加预编译指令 USE_LUA
* Warp初始化
生成LuaWarp文件
Lua设置编辑器 -> 重新生成Lua Warp脚本
清空LuaWarp文件
Lua设置编辑器 -> 清除Lua Warp脚本
重新生成打包配置
Lua设置编辑器 -> 自动生成Lua配置文件
LuaManager
static void Init()
LuaManager初始化(会在ApplicatioManager中自动调用)
static void LoadLua()
加载Lua文件
static void DoLuaFile(string fileName)
加载指定的Lua文件
static void LaunchLua()
启动Lua
LuaStatus
LuaFunction GetFunction(string name, bool beLogMiss = true)
获取一个Lua函数以备调用
public class LuaTestStstus : IApplicationStatus
{
public override void OnEnterStatus()
{
LuaManager.LoadLua();
LuaManager.LaunchLua();
}
}
public static void LaunchLua()
{
//Debug.Log("LaunchLua");
try
{
s_state.GetFunction("Main").Call();
s_isUpdate = true;
s_updateFunction = s_state.GetFunction("LuaUpdate");
}
catch (Exception e)
{
Debug.LogError("Lua Lunch Execption " + e.ToString());
}
}
* 在UI设置编辑器勾选使用Lua
* 在自动生成的Lua文件中重写方法,位置在Resources/Lua/UI/下,格式是 "Lua" + UIWindowName + ".txt"
1. OnInit
2. OnOpen
3. OnClose
4. EnterAnim
...
* 框架里集成的是ToLua,删掉了ToLua中对Vector3等的一些优化
* 每次新增Lua文件,记得要重新生成Lua设置文件和更新打包设置
* 如果修改代码之后Warp报错可以清空Warp文件重新生成
* 常见的Lua启动失败原因有
1. USE_LUA 宏未设置
2. 没有Warp或者Warp文件报错
3. 没有重新生成Lua配置文件
* C#和Lua互相调用的时候不要直接使用LuaTable类,建议使用Json传递消息
* 所有的Lua文件在框架里后缀都使用.txt