Lua
Unique_849997563
我不太愿意麻烦别人,但我又想不懂就问,所以很矛盾!
展开
-
Lua 点和冒号的区别
Lua 点(.)和冒号(:)的区别.lua中的self 类似于C#的this表示当前对象。function test.func(args) 函数体 endfunction test:func(args) 函数体 end其中第二个函数 ,默认传了一个隐式self作为第一个参数,所以形参是(self,args)。等价于:function test.func(self,args) 函数体 end。原创 2022-09-30 10:18:34 · 277 阅读 · 0 评论 -
【Lua笔记】、Lua 协程
Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只有在明确的被要求挂起的时候才会被挂起。协同程序有点类似同步的多线程,在等待同一个线程锁的几个线程有点类似协同。原创 2022-09-27 17:39:03 · 163 阅读 · 0 评论 -
【Lua笔记】、Lua元表
Lua 提供了元表(Metatable),允许我们改变 table 的行为,每个行为关联了对应的元方法。两个函数来处理元表:setmetatable(table,metatable):对指定table设置元表(metatable),返回table。如果元表(metatable)中存在 __metatable 键值,setmetatable 会失败。getmetatable(table): 返回对象的元表(metatable)。原创 2022-09-24 15:12:38 · 543 阅读 · 0 评论 -
XLua笔记(二)
XLua笔记https://blog.csdn.net/qq_33461689/article/details/113738755?spm=1001.2014.3001.5501一、XLua的枚举转换:之前的项目用过XLua的cast强转,枚举可以使用cast强制转换吗?今天试了一下, 发现转换不了。翻了一些博客,加上自己实践,整理了一下五种枚举使用和转换的方式:C#新建一个测试枚举:public enum TestEnum{ Null = 0,}Lua代码测试调用C#..原创 2021-12-14 12:18:16 · 1095 阅读 · 0 评论 -
【Unity编辑器扩展实践】、基于模板创建Lua脚本
当前项目使用C#开发版本,IOS使用Xlua热更代码。每次创建Xlua文件的时候,都是复制之前的Lua文件修改文件名、类名,模板内容基本一致,觉得有一点麻烦。以前写过一篇文章:修改Unity、VS2015创建C#脚本时使用的模板,就想仿照着Unity创建C#脚本时的方法写一个创建Lua脚本的编辑器扩展。首先根据需求,创建一个Txt模板:100-Lua Script-NewLua.lua.txt...原创 2021-07-30 15:29:58 · 874 阅读 · 5 评论 -
XLua笔记
1、XLua强制类型转换cast(data,type)第一个参数是需要强转的对象,第二个参数是目标类型例如:有一个对象_resData需要强转为C#类型ResourceData。local _resdata=_datacast(_resdata, typeof(CS.MapTileResourceData))2、XLua调用带泛型函数创建一个带泛型的GetTest函数。public class Test{ public Test GetTest<Test&g原创 2021-03-23 12:07:33 · 2311 阅读 · 0 评论 -
lua和C#中函数string.format对字符串常用的格式化整理
在lua中,函数string.format是用来对字符串进行格式化,第一个参数为格式化串:由指示符和控制格式的字符组成。指示符后的控制格式的字符可以为:十进制'd';十六进制'x';八进制'o';浮点数'f';字符串's'。在指示符'%'和控制格式字符之间还可以有其他的选项:用来控制更详细的格式。常用的控制格式如下:print(string.format("十进制:(%d)",10)) --常规...原创 2018-02-06 10:33:54 · 1654 阅读 · 0 评论 -
Xlua重写C#的属性
C#写了个Bug,一个用来计算值的属性方法公式有问题,需要使用Xlua热更,然后网上查找关键字:Xlua重写C#的Get属性,找不到解决方法。突然想到C# 中类属性的本质,编译成中间语言后是 get、set 两个方法,调用属性实际上是调用 get 或 set 方法。get 对应名为“get_属性名”的方法,set 对应名为“set_属性名"的方法。举个栗子: public cl...原创 2019-08-15 16:19:01 · 1566 阅读 · 0 评论