ToLua 笔记

来源:互联网 发布:淘宝手机详情尺寸大小 编辑:程序博客网 时间:2024/06/05 14:17

ToLua源码地址:https://github.com/jarjin/LuaFramework_UGUI

目前tolua使用心得记录:
1.所有要用到的C# 类 都要在CustomSettings.cs 里面注册,并更新绑定后才能使用。
2.lua调用lua 的require “” 【文件夹里lua脚本必须写路径】,例:require “3rd/pblua/login_pb”
3.在lua脚本前面生明了的C#类就可以像在C#里一样调用了,例:Vector3=UnityEngine.Vector3
4.在lua里使用C#脚本New对象时,不用写New,例:local v3= Vector3()
5.在lua里使用C#类时,属性,变量,静态方法可用“.”,一般方法使用 “:”调用。例:Vector3.up, v3:Normalize();
6.lua不支持泛型,类似GetComponent()可改为GetComponent(typeof(XXX))
7.在lua中继承关系的 子类可以使用父类的字段和方法,但是父类不能调用子类重写的方法

基础使用示例:
// 1.调用Lua 打印语句
LuaState lua = new LuaState();
lua.Start();
string hello =
@”
print(‘hello tolua#’)
“;

    lua.DoString(hello, "HelloWorld.cs");   // 执行Lua 字符串代码    lua.CheckTop();    lua.Dispose();    lua = null;

//调用 *.lua 文件执行lua脚本
lua = new LuaState();
lua.Start();
//如果移动了ToLua目录,自己手动修复吧,只是例子就不做配置了
string fullPath = Application.dataPath + “\ToLua/Examples/02_ScriptsFromFile”;
lua.AddSearchPath(fullPath); //添加lua文件路径

lua.DoFile(“ScriptsFromFile.lua”); // 执行lua (一次)
lua.Require(“ScriptsFromFile”); //执行lua

// 调用Lua 方法 LuaFunction
private string script =
@” function luaFunc(num)
return num + 1
end

        test = {}        test.luaFunc = luaFunc    ";LuaFunction func = null;   // <-----LuaState lua = null;     lua = new LuaState();    lua.Start();    lua.DoString(script);    func = lua.GetFunction("test.luaFunc"); // 获取lua方法        object[] r = func.Call(123456);    //有gc alloc        int num = CallFunc();   //无 GC 调用    if (func != null)    {        func.Dispose();        func = null;    }

。。。。。
其他更多案例可以去源工程的示例目录:Assets\LuaFramework\ToLua\Examples下 查看各类使用案例

看完以上示例,可以看看蛮牛上的这个tolua入门实战:http://m.manew.com/forum.php?mod=forumdisplay&fid=47&page=1&filter=typeid&typeid=396&mobile=2

0 0
原创粉丝点击