项目中一直使用tolua框架,底层使用C#开发,逻辑使用lua开发。借助tolua的源码,研究一下lua与C#是如何互相调用的,然后自己写了个简单的demo作为记录。
Lua笔记 迭代器
Lua中的迭代器提供的是一种遍历表中所有元素的机制,它通常是函数的形式,每次调用函数,返回“下一个”值。Lua中的迭代器有两种实现方式,基于闭包(closure)或者基于协程(coroutine)。以下会通过一个实例来分别讨论两种迭代器的实现。
Lua笔记 效率&性能
本文使用对比测评的方式比较了几种Lua中代码和方式,并做了简要的总结和分析。结合其中结论,可指导写出质量更高、性能更优的脚本。本文基于Lua5.1,大部分内容也同样适用于Lua5.2和5.3。本文中引用到的Lua源代码都取自Lua 5.1.5版本。
Unity3D UGUI 源码学习 其它
在UGUI中遇到的其它类,统一放在一起了。主要包括CoroutineTween、IndexedSet、ListPool、ReflectionMethodsCache和SetPropertyUtility等。
Unity3D UGUI 源码学习 BaseMeshEffect
BaseMeshEffect是用于修改生成的网格的特效类的抽象基类,Outline和Shadow等都是其衍生类或衍生类的衍生类。
Unity3D UGUI 源码学习 Mask
UI结构中的Mask组件用于对其子节点产生遮罩。通过修改模板值来实现其子结点中各MaskableGraphic组件的遮罩控制。阅读本文之前强烈建议先阅读Unity3D UGUI 源码学习 MaskableGraphic。
Unity3D UGUI 源码学习 Button
UI中用于响应点击事件的组件。阅读本文之前强烈建议先阅读Unity3D UGUI 源码学习 Selectable。
1 | public class Button : Selectable, IPointerClickHandler, ISubmitHandler |
继承自Selectable,实现了IPointerClickHandler和ISubmitHandler。
Unity3D UGUI 源码学习 Text
Text用于在UI中绘制文本标签。文字绘制是比较复杂的过程,Text和Unity中的很多其它类共同完成这一绘制过程。本文会围绕UGUI中的Text类并拓展到相关的其它类,以学习和了解文本是如何绘制出来的。
Unity3D UGUI 源码学习 Image
Image是UGUI中最常用的组件之一,用于在UI中显示一个图片(Sprite),继承自MaskableGraphic,覆写了Graphic和MaskableGraphic的一些方法。同时实现了三个接口,ISerializationCallbackReceiver接收序列化和反序列化完成的回调,ILayoutElement作为自动布局元素,实现了计算自动布局尺寸的接口,ICanvasRaycastFilter实现了用于处理射线投射时过滤的方法,后边会一一详述。
OSX使用sed移除UTF-8中的BOM
最近遇到的一个问题是在OSX和iOS上,带BOM的UTF-8编码格式的文件(主要是Excel导出来的lua配表)无法正常工作。于是在打包脚本中增加了一个环节去除各UTF-8编码文件中可能出现的BOM头。