ToLua 笔记

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值