{ private string script = @" --打印一个字段 这个字段没有进行赋值会在后面用脚本赋值 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 "; void Start () { LuaState lua = new LuaState(); ua.Start(); //通过索引器直接对脚本里面的变量进行赋值 lua["Objs2Spawn"] = 6666; //要先进行赋值再执行lua脚本不然Objs2Spawn为nil会报错 lua.DoString(script); //通过LuaState访问 //读取lua里面的字段名字 Debugger.Log("Read var from lua: {0}", lua["var2read"]); //读取lua里面的表里面的数据 Debugger.Log("Read table var from lua: {0}", lua["varTable.default"]); //可以通过索引器的方法获取一个函数 转化成LuaFunction 要使用as强制数据类型转化 LuaFunction func = lua["TestFunc"] as LuaFunction; //Call方法是执行函数 --适用于有参数,但无返回值 一定要是没有返回值的函数方法 func.Call(); func.Dispose(); //获取lua脚本里面的一个表 LuaTable table = lua.GetTable("varTable"); //通过索引器的方式获取表里面的数据 Debugger.Log("Read varTable from lua, default: {0} name: {1}", table["default"], table["map.name"]); //对lua中获取的表里面的数据进行重新赋值 用的都是索引方式进行赋值 table["map.name"] = "new"; //table 字符串只能是key Debugger.Log("Modify varTable name: {0}", table["map.name"]); //给表里面添加一个新的表格 创建了一个叫newmap的表格 table.AddTable("newmap"); //获取上面添加到表格里面表格对象newmap LuaTable table1 = (LuaTable)table["newmap"]; //在table1里面创建一个name的变量并进行赋值 //此处的name不是元表meta里面的name meta是table的元表 table1["name"] = "新建表格名字"; Debugger.Log("varTable.newmap name: {0}", table1["name"]); //获取表table的元表 table1 = table.GetMetaTable(); if (table1 != null) { Debugger.Log("varTable metatable name: {0}", table1["name"]); } //把lua里面的table转化成一个数组 object[] list = table.ToArray(); for (int i = 0; i < list.Length; i++) { Debugger.Log("varTable[{0}], is {1}", i, list[i]); } } }
脚本功能实现C#对Lua变量的赋值,同样获取到lua变量同样也能对C#变量赋值
主要函数
lua[“变量名称”] 直接获取到Lua里面的变量可查可改{get;set;;}
func.Call() 这个是执行有参数无返回值的函数
object[] list = table.ToArray(); 把表格里面的数据变成一个Array数组
会转化
1、没有设置key value键值对
2、没有设置特殊下标
的数据
热更新_ToLua学习示例 04_AccessingLuaVariables
猜你喜欢
转载自blog.csdn.net/m0_74652911/article/details/129908652
今日推荐
周排行