• toLua学习


    toLua学习
    通用的过程
    //开始
    LuaState lua = new LuaState();
    lua.Start();
    --在这个位置插入lua的具体操作--
    //结束
    lua.CheckTop();
    lua.Dispose();
    lua = null;
    1.第一个例子 DoString
    lua.DoString("print("Hollo toLua.");")

    2.第二个例子 DoFile 和 Require
    string fullPath = Application.dataPath + "\ToLua/Examples/02_ScriptsFromFile";//找到lua文件的父目录
    lua.AddSearchPath(fullPath); //增加lua文件的搜索目录
    //DoFile的操作
    lua.DoFile("脚本名.lua");
    //Require的操作
    lua.Require('脚本名(不需要带后缀名)');

    3.第三个例子 回调lua的函数
    lua脚本:
    --start--
    function luaFunc(num)
    return num + 1
    end
    test = {}
    test.luaFunc = luaFunc
    --end--

    //优先读取persistentDataPath/系统/Lua 目录下的文件(默认下载目录)
    //未找到文件怎读取 Resources/Lua 目录下文件(仍没有使用LuaFileUtil读取)
    new LuaResLoader();
    lua.DoFile("上面的lua脚本");
    //获取lua里面的func的方法
    luaFunc=lua.GetFunction("test.luaFunc");
    //调用lua里面的方法1
    int num = luaFunc.Invoke<int, int>(123456);
    //调用lua里面的方法2
    int CallFunc()
    {
    luaFunc.BeginPCall();
    luaFunc.Push(123456);
    luaFunc.PCall();
    int num = (int) luaFunc.CheckNumber();
    luaFunc.EndPCall();
    return num;
    }
    num = CallFunc();
    //调用lua里面的方法3
    DelegateFactory.Init();
    Func<int, int> Func = luaFunc.ToDelegate<Func<int, int>>();
    //调用lua里面的方法4
    num = lua.Invoke<int, int>("test.luaFunc", 123456, true);

    4.第四个例子

    lua脚本:
    --start--
    print('Objs2Spawn is: '..Objs2Spawn)
    var2read = 42
    varTable = {1,2,3,4,5}
    varTable.default = 1
    varTable.map = {}
    varTable.map.name = 'map'

    meta = {name = 'meta'}
    setmetatable(varTable, meta)

    function TestFunc(strs)
    print('get func by variable')
    end
    --end--

    lua["Objs2Spawn"] = 5;//对应脚本里面的第一句
    lua.DoFile(lua的脚本名);
    Debugger.Log("Read var from lua: {0}", lua["var2read"]);//读取lua脚本里面的值

  • 相关阅读:
    cogs 1272. [AHOI2009] 行星序列
    1027. 打印沙漏(20)
    1026. 程序运行时间(15)
    1023. 组个最小数 (20)
    《C语言程序设计(第四版)》阅读心得(四 文件操作)
    1022. D进制的A+B (20)
    1021. 个位数统计 (15)
    1020. 月饼 (25)
    1015. 德才论 (25)
    1009. 说反话 (20)
  • 原文地址:https://www.cnblogs.com/kanekiken/p/7570778.html
Copyright © 2020-2023  润新知