2021/01/26
一、lua 字符串原理: 分为短串、长串(短串:有stringmap 先查找再创建 长串:直接创建即多一个内存副本) 主要是因为短串使用频率高
二、lua 使用长整形数据 解决方案: 在c#、c里封装一个长整形对象 再封装相关的方法函数
2021/01/27
一、元表 : 用来存放元方法的table 元表中的键为事件(event),称值为元方法(metamethod) (http://www.benmutou.com/archives/1755 )
二·、lua实现面向对象 : 1、实用元表简单实现 2、 实用元表结合深度拷贝(参考云风)
三、luacomponent组件(cs文件) : 一个变量引用lua表,适时调用对应生命周期函数。 目的: 使得在lua中也能使用unity内置的函数(生命周期、碰撞等)
四、lua源码分析 : https://blog.csdn.net/initphp/category_9293184.html
2021/04/06
一、闭包:当bug出现的地方存在闭包,优先考虑闭包造成;且bug是由于闭包函数中的某个变量导致不要犹豫就是闭包造成。(举例:unity相关的ui监听事件 dropdown) https://www.cnblogs.com/msxh/p/8283865.html
2021/05/07
一、lua实现单例 本质还是通过元表、元方法__index https://blog.csdn.net/yitouhan/article/details/15338135
2021/05/20
一、lua里面判空需要分两种情况 1)针对lua对象判空 obj == nil 2) 针对非lua对象判空(最为稳妥) 需要在该对象 对应的环境中判空 举例:判断c#对象是否为空 需要在c#中封装一个接口用来在lua中调用判空
2021/05/21
一、table.unpack 可以把一个table 转化为多参数 即{1,2,3} => 1,2,3
2021/07/01
一、lua 有函数解析顺序规则 InitMng放在文件尾部调用最稳妥 例如
local xxxMng = {}
functiong xxxMng.InitMng()
end
// xxxMng.InitMng() 如果放这里 InitMng调用了下面的某个函数 会报找不到这个函数
........一堆函数.........
xxxMng.InitMng()
return xxxMng