toLua
Master-Xue
这个作者很懒,什么都没留下…
展开
-
toLua学习笔记十七——lua调用c#的协程
tolua为我们提供了一些方便开启协程的方法,让我们可以直接使用类似Unity中协程的相关方法。比如:WaitForSeconds、Yield、WaitForFixedUpdate、WaitForEndOfFrame、Yield(异步加载返回值)等。直接上代码local coDelay = nil--开启协程的方法StartDelay = function () coDelay = StartCoroutine(Delay)endDelay = function () loc原创 2021-03-09 14:55:59 · 622 阅读 · 0 评论 -
toLua学习笔记十六——lua调用c#的委托和事件
委托委托中加函数执行委托函数委托中减函数清空委托函数事件事件中加函数事件中减函数事件中清空函数首先在c#脚本中定义委托和事件public class Lesson{ public UnityAction del; public event UnityAction eventAction; public void DoDel(){ if(del!=null) del(); } public void DoEvent(){.原创 2021-03-09 14:41:15 · 1888 阅读 · 1 评论 -
toLua学习笔记十五——Lua调用c#的重载方法
在c#中写入一些重载函数 public int Calc(){ return 100; } public int Calc(int a){ Debug.Log("int"); return a; } public float Calc(float a){ Debug.Log("float"); return a; } public string Calc(st原创 2021-03-08 15:08:40 · 486 阅读 · 1 评论 -
toLua学习笔记十四——lua调用c#中的out和ref方法
tolua和xlua中对ref和out函数使用基本类似,都是通过多返回值的形式来处理的。如果函数有返回值,第一个参数就是函数的默认返回值,之后就是ref和out对应的结果,从左到右一一对应。1、在c#中创建ref和out函数public int RefFun(int a,ref int b, ref int c,int d){ b = a+d; c = a-d; return 100; } public int OutFun(int a,原创 2021-03-08 14:39:38 · 1053 阅读 · 0 评论 -
toLua学习笔记十三——lua调用c#中的拓展方法
首先在c#脚本中新建一个类和拓展类public static class Tools{ public static void Move(this Lesson4 obj){ Debug.Log(obj.name+"移动"); }}public class Lesson{ public string name = "master"; public void Speak(string str){ Debug.Log(str);原创 2021-03-08 11:41:13 · 451 阅读 · 0 评论 -
toLua学习笔记十二——调用c#中的数组、列表和字典
这里写目录标题数组数组的长度访问数组中的元素查找元素的位置遍历数组创建数组列表添加元素获取元素得到List的长度遍历在lua中创建一个c#的list字典添加元素遍历创建字典访问元素数组首先在c#脚本中创建一个数组public class Lesson{ public int[] array = new int[5]{1,2,3,4,5};}在CustomSettings文件中添加Lesson类并生成,不然会识别不到在lua中创建一个变量接收Lesson类local obj = Les原创 2021-03-08 11:27:10 · 2430 阅读 · 0 评论 -
toLua学习笔记十一——Lua调用c#枚举
1、在C#中创建一个自定义枚举public enum E_MyEnum{ Idle, Move, Atk}2、枚举和类一样,都需要将使用的枚举加入到CustomSetting文件中。使用方法也基本相同--调用Unity自带的枚举primitiveType = UnityEngine.PrimitiveTypeGameObject = UnityEngine.GameObject--Unity的静态类,创建一个几何体local obj = GameObject.Cre原创 2021-03-02 16:25:52 · 1027 阅读 · 0 评论 -
toLua学习笔记十——lua调用C#的类
toLua访问C#的类,固定套路 命名空间.类名,比如GameObject,在lua中调用就是UnityEngine.GameObject。1、通过C#实例化一个对象,因为lua中没有new,所以我们直接使用类名()来实例化对象。local obj1 = UnityEngine.GameObject()local obj2 = UnityEngine.GameObject("Master_Xue")2、在使用中,为了方便实用并且节约性能,我们通常定义全局变量来存储我们C#中的类GameObjec原创 2021-03-02 16:06:22 · 1908 阅读 · 0 评论 -
toLua学习笔记九——c#使用tolua提供的协程
c#中使用tolua中的协程方法和获取全局函数方法一致,主要是在lua中编写协程逻辑。需要注意的是,tolua的协程逻辑都是toLua帮我们实现的,并不是lua中的协程。1、在lua中编写协程程序--lua协程相关local coDelay = nil--开启协程StartDelay = function () coDelay = coroutine.start(Delay)end--协程Delay = function () local c = 1 while t原创 2021-03-02 15:11:42 · 555 阅读 · 0 评论 -
toLua学习笔记八——访问lua中table表现的类
1、在lua中创建一个table testClass = { testInt = 2, testBool = true, testFloat = 1.2, testString = "123", testFun = function () print("表中的方法"); end}2、获取lua中的table通过解析器的GetTable获取,具体调用函数方法可参考toLua学习笔记六——C#获取LUA全局函数 LuaTable tab原创 2021-03-02 14:54:33 · 605 阅读 · 0 评论 -
toLua学习笔记七——访问lua中table表现的List和Dictionary
在toLua中,c#得到lua中的表,都只有一个套路,那就是通过luatable来获取1、在lua中创建List和Dictionary--table表现的listtestList = {1,2,3,4,5,6}--table表现的dictionarytestDic = { ["1"] = 1, ["2"] = 10, ["3"] = 20, ["4"] = 30}testDic2 = { ["1"] = 1, [true] = 1, [原创 2021-03-02 14:41:17 · 2064 阅读 · 0 评论 -
toLua学习笔记六——C#获取LUA全局函数
文章目录无参无返回有参又返回多返回值变长参数无参无返回1、在lua文件中创建一个无参无返回的函数testFun = function() print("无参无返回")end2、第一种获取方法:通过GetFunction方法获取 LuaFunction function = LuaMgr.GetInstance().LuaState.GetFunction("testFun"); //调用 function.Call();3、第二种方法:通过[函数名原创 2021-03-01 17:26:14 · 891 阅读 · 0 评论 -
toLua学习笔记五——C#获取LUA全局变量
1、新建lua脚本Test.lua,在里面创建一些全局变量和一个局部变量用来测试--全局变量testNumber = 1testBool = truetestFloat = 1.2testString = "123"local testLocal = 102、在Main.lua中执行Test.lua文件3、新建脚本文件,先初始化解析器,然后在得到的解析器中通过[“变量名”]即可得到 LuaMgr.GetInstance().Init(); LuaMgr.GetIn原创 2021-03-01 16:02:00 · 563 阅读 · 1 评论 -
toLua学习笔记四——toLua解析器管理器
直接上代码 private LuaState luaState; public void Init() { //最后打包时候再用 //new LuaCustomLoader(); //初始化 luaState = new LuaState(); luaState.Start(); //委托初始化相关 //协程相关 //lua使用Unity中的类相关 } ///原创 2021-03-01 15:41:46 · 232 阅读 · 0 评论 -
ToLua学习笔记三——toLua解析器自定义解析方式
一、自定义路径toLua为我们定义了执行Lua文件的路径"Assets/Lua",那么执行其他路径的lua文件要怎么办呢?1、在Asset/Lua文件夹下新建一个文件夹“C#CallLua”并在里面创建一个lua文件“Loader.lua”。此时直接使用luaState.Require执行会报错:module ‘Loader’ not found,因为Require默认只能找到Assets/Lua文件夹下的lua文件。2、第一种方式:如果文件属于Lua文件夹下,可以直接加父目录luaState.R原创 2021-03-01 14:49:15 · 578 阅读 · 2 评论 -
toLua学习笔记二——toLua解析器
1、引用LuaInterface命名空间2、初始化toLua解析器 //初始化一个tolua解析器 LuaState luaState = new LuaState(); //启动解析器 luaState.Start();一、执行lua代码使用DoString重载 //执行lua代码 luaState.DoString("print('Hello world')"); //执行lua代码并指明出处,方便调试时查看原创 2021-03-01 11:56:33 · 317 阅读 · 0 评论 -
toLua学习笔记一——创建工程和导入tolua框架
创建Unity工程从GitHub下载toLua框架将toLua中的Luajit64文件夹拷贝到工程Assets同级目录下将toLua中Assets文件夹中所有文件拷贝到工程Assets下面导入成功后会出现以下提示框,点击确定自动生成关键脚本:如果点击取消,也可以在Lua->Generate All生成所有关键脚本文件...原创 2021-03-01 11:34:38 · 426 阅读 · 0 评论