U4S4L1——导入Addressables
U4S4L1——导入Addressables 导入Addressables包 在工具栏处点击 Window —— Package Manager,打开后下载 Addressables 包即可 之后看到 Window —— Asset Management —— Addressables,即证明安装成功 创建配置相关文件 创建配置文件有两种方法 方法一:打开资源组窗口 Window ——> Asset Management ——> Addressables ——> Groups 在窗口中点击 Create Addressables Settings 按钮 方法二:在 Inspector 窗口中为资源勾选 Addressable 如果没有创建过配置相关文件,这时会自动创建相关文件
UH2S3L11——Lua调用数组、List和Dictionary
UH2S3L11——Lua调用数组、List和Dictionary 本章代码关键字 1234System.Array.CreateInstance() --创建数组System.Collections.Generic.List_泛型参数() --创建列表,需要先在CustomSetting中去添加对应类型System.Collections.Generic.Dictionary_键泛型参数_值泛型参数() --创建字典,需要先在CustomSetting中去添加对应类型字典:TryGetValue() --尝试获取值,以字符串为键的的字典只能通过该方法获取值 Lua调用C#数组 假设我们要调用下面这个数组 1234public class Lesson3{ public int[] array = new int[5] { 1, 2, 3, 4, 5...
UH2S3L12——Lua调用枚举
UH2S3L12——Lua调用枚举 本章代码关键字 123tostring() --枚举转字符串,传入要转换的枚举值枚举值:ToInt() --枚举值转数字枚举.IntToEnum() --数字转枚举值,传入数字 Lua调用C#枚举 假设我们要调用下面这个枚举 123456789101112//枚举#region Lesson2 Enum/// <summary>/// 自定义测试枚举/// </summary>public enum E_MyEnum{ Idle, Move, Atk,}#endregion 调用Unity当中的枚举,枚举的调用规则 和 类的调用规则是一样的, 即命名空间.枚举名.枚举成员,也支持取别名 同样,如果报错,需要在CustomSetting中去加上 然后生成代码 xLua的区别是,没有提供字符串转枚举的功能 调用Unity自带的枚举 1234PrimitiveType =...
UH2S3L10——Lua调用C#类
UH2S3L10——Lua调用C#类 本章代码关键字 1LuaBinder.Bind() //Lua使用Unity中的类相关必须要执行该方法,传入正在使用的lua解释器 123456789101112131415--Lua调用C#的类命名空间.类名UnityEngine.类名类名 --不加命名空间--实例化对象命名空间.类名--静态方法与变量命名空间.类名.方法命名空间.类名.变量--成员方法与变量实例化对象.变量实例化对象:方法 --不要忘记加:!!!,因为Lua里表的方法想要调用表本身需要冒号--技巧别名 = 命名空间.类名 --该变量将执行对应的类,可以简化名称并优化性能Lua不支持无参泛型方法,因此需要使用对应的传入Type类型参数的方法 初始化Lua调用C#类相关 toLua的解析器如果要使用C#类相关,必须要使用调用LuaBinder.Binder()方法,并传入当前正在使用的Lua解析器 1LuaBinder.Bind(luaState); ...
UH2S3L9——使用toLua提供的协程
UH2S3L9——使用toLua提供的协程 本章代码关键字 12LuaLooper //toLua在使用协程前,必须要在场景上的某个游戏对象上挂载该脚本,并关联当前正在运行的解析器luaLooper.luaState //如果要让lua解析器的可以执行协程,就必须要先将解析器与关联到luaLooper.luaState上 1234-- 以下是toLua为我们提供的协程方法,原本的Lua里不存在这些方法coroutine.start() --将某个函数作为协程开启,返回协程变量coroutine.wait() --挂起协程,输入秒数可以将协程挂起指定的一段时间coroutine.stop() --传入协程,停止某个协程 toLua提供的协程 toLua为Lua的协程添加了start,wait,stop函数,使得协程的开启、挂起、停止更加方便了 12345678910111213141516171819202122232425-- tolua协程相关的代码local coDelay =...
UH2S3L8——访问Lua中table
UH2S3L8——访问Lua中table 本章代码关键字 12luaTable.GetLuaFunction() //获取表中的函数luaTable.GetTable<>() //获取表中的表 访问Lua中table 对于下面用table模拟的Class 1234567891011121314-- lua中的一个自定义table(模拟类)testClass = { testInt = 2, testBool = true, testFloat = 1.2, testString = "123", testFun = function() print("表中的函数打印") end, testTable = { testTableInt = 111, testTableBool = true, }} 如果要获取表中的变量,直接使用中括号索引获取即可 12345LuaTable...
UH2S3L7——访问Lua中table表现List和Dictionary
UH2S3L7——访问Lua中table表现List和Dictionary 本章代码关键字 1234567luaState.GetTable() //获取全局table变量,为引用拷贝LuaTable //Lua的table类型luaTable[] //可以通过索引获取table的值,只支持int和string类型luaTable.ToArray() //将LuaTable转换为数组形式luaTable.ToDictTable<>() //将LuaTable转换为LuaDictTable<>形式LuaDictTable<> //toLua的table模拟字典类,可以通过它去通过键获取值,键的类型不限LuaDictEntry<> ...
UH2S3L6——全局函数获取
UH2S3L6——全局函数获取 本章代码关键字 1234567891011121314LuaFuntion //可用于装载Lua函数的类luaState.GetFunction() //通过lua解析器获取全局函数luaFunction.Call<>() //调用Lua的无返回值的函数,适用于不多于9个参数的无返回值的Lua函数luaFunction.ToDelegate<>() //将lua函数类提取到委托中lunFunction.Dispose() //销毁lua函数,防止内存泄露luaFunction.BeginPCall() //开始调用lua函数luaFunction.Push() //传入参数luaFunction.PCall() //结束参数的传入,调用函数luaFunction.CheckNumber() ...
UH2S3L5——全局变量获取
UH2S3L5——全局变量获取 本章代码关键字 1luaState[] //C#可以通过tolua解析器的索引器传入全局变量名来调用全局变量 调用Lua全局变量 想要在C#中获取全局变量需要调用toLua解析器,使用[]传入全局变量名来调用全局变量 和xLua一样,我们在C#中只调用Lua的Main脚本,剩下的Lua脚本调用在Lua的Main脚本里执行 和xLua一样,我们无法调用C#的Lua的局部变量 Main.lua 123print("第一个Lua脚本执行!")-- 通过启动main时来执行脚本require("CSharpCallLua/Test") Test.lua 123456789print("C#调用Lua的测试脚本")-- 全局变量testNumber = 1testBool = truetestFloat = 1.2testString = "123"local testLocal =...