Unity热更新学习(二) —— ToLua c#与lua的相互调用
tolua 下载地址:http://www.ulua.org/index.html
c#调用lua的方法,tolua的官方例子提供了很多种。我初步学了一种在做项目使用的方法。通过DoFile方法执行lua脚本。目前只在windows环境下的Unity上测试,没有在真机运行。
一、创建一个c# script,封装一下LogError方法
1 public class GameDebug {
2 public static void LogError(object msg)
3 {
4 Debug.LogError("打印:" + msg.ToString());
5 }
6 }
并把这个类加到CustomSetting里,并wrap一下
二、创建一个lua脚本
local Main = {};
local c1,c2;
-- 游戏主入口
function Main:GameEnter()
GameDebug.LogError("从这开始");
end
return Main;
三、创建一个c# script并注册lua虚拟机,把这个script挂在场景里的某个GameObject上
1 void Start () {
2 //创建lua虚拟机
3 luaState = new LuaState();
4
5 //绑定lua虚拟机
6 LuaBinder.Bind(luaState);
7 luaState.Start();
8
9 LuaTable lt = luaState.DoFile<LuaTable>("Main.lua");
10 //调用lua游戏入口
11 lt.Call("GameEnter", lt);
12 lt.Dispose();
13 }
运行结果: