Lua
ywjun的学习笔记
这个作者很懒,什么都没留下…
展开
-
Unity运行时Lua热更新
项目开发中,Lua代码被require之后,如果出错,就需要重新打开项目。这样非常影响开发效率。因此,Lua中使用热更新,非常的必要。由于实际开发项目中,运行环境复杂。因此,这里我对项目中 界面的代码做了重新加载,其实,一个游戏项目,系统的工作量,特别是界面的工作量,占了整个工作量的绝大部分。而对其他必要的类,进行了函数的重新加载,这样,就能够在运行时修改函数,添加日志,追踪错误。整体思路...原创 2019-11-22 10:47:18 · 2100 阅读 · 0 评论 -
使用sublimint配置lua编辑器
项目中使用Lua对Unity进行热更新,但是没有好的编辑器,主要是用vs用习惯啦,所以得找一个合适的编辑器,不要求能调试,但是需要能方便的看代码。尝试使用NodePad++,EditPlus,都感觉不太好,找到了sublime,确实不错,并且可以使用Python编写自己的插件(这几天刚好使用Python写了几个工具,不由得觉得非常的合适啊,这不就是我想要的么)。对编辑器的要求:1.函数折叠原创 2016-11-09 10:58:14 · 2794 阅读 · 0 评论 -
Lua封装map
“`map = {}local this = mapfunction this:new() o = {} setmetatable(o,self) self.__index = self self.count = 0 return o endfunction this:insert(k,v)if nil == self[k] then --原创 2016-01-31 13:58:31 · 11181 阅读 · 0 评论 -
Lua数据结构 — 闭包(四)
前面几篇文章已经说明了Lua里面很常用的几个数据结构,这次要分享的也是常用的数据结构之一 – 函数的结构。函数在Lua里也是一种变量,但是它却很特殊,能存储执行语句和被执行,本章主要描述Lua是怎么实现这种函数的。在脚本世界里,相信闭包这个词大家也不陌生,闭包是由函数与其相关引用环境组成的实体。可能有点抽象,下面详细说明:一、 闭包的组成闭包主要由以下2个元素组成:函数原型:上图意在表明是一段可转载 2016-01-31 19:10:43 · 900 阅读 · 0 评论 -
Lua数据结构 — TString(二)
存储lua里面的字符串的TString数据结构:(lobject.h 196-207)其它结构中也会有L_Umaxalign dummy这个东西,来看看L_Umaxaliagn:从字面意思上就是保证内存能与最大长度的类型进行对齐,事实上也是做这件事,这里感觉lua想给各种不同设备做一种嵌入式脚本,这里要保证与最大的长度对齐能保证CPU运行高效不会罢工。tsv才是TString的主要数据结构:Com转载 2016-01-31 19:08:21 · 537 阅读 · 0 评论 -
Lua数据结构 — TValue(一)
数据结构的设计,在一定程度上奠定了整个系统的设计,所以决定写一个对Lua主要数据结构的分析文章,本来打算写一篇就好了,但是每个数据类型其实都有点复杂,一篇的话篇幅太长,所以就拆开几篇来写了。为什么是从TValue说起,TValue是实现Lua弱数据类型的主要数据结构,不但在脚本中的值使用了TValue,连Lua的实现中,很多数据结构也依赖于TValue,TValue一定程度上贯穿了整个Lua。先说一转载 2016-01-31 18:49:53 · 627 阅读 · 0 评论 -
Lua数据结构 — Table(三)
前面(一)、(二)里面其实已经把一些常用的数据类型(数值、布尔、字符串)说明了,这次要描述的是Table,Table在Lua里是一种常用的数据类型,是Lua里的精髓之一,其效率必须得到保证,而实现这种支持任意类型key和value的Table也是较为复杂的。一, Table的设计思想:1, 首先,讲一下Lua要设计的Table是怎么样子的:Lua就是想做这种支持任意类型的key和任意类型val的转载 2016-01-31 18:34:29 · 1240 阅读 · 0 评论 -
Lua单例(lua学习二)
require "Class"CharacterManager = Class:new(nil)local this = CharacterManagerfunction this:GetInstance() if nil == self.m_Instance then self.m_Instance= self:new() end return m_Ins原创 2016-01-28 20:46:02 · 3624 阅读 · 0 评论 -
Lua类继承(二)
Lua类继承(二)function clone(object) local lookup_table = {} local function _copy(object) if type(object) ~= "table" then return object elseif lookup_table[object] then原创 2016-01-28 20:27:12 · 481 阅读 · 0 评论 -
Lua继承(Lua学习一)
构造类local setmetatable = setmetatableClass = {}function Class:new(super) local class = {} class.__index = class local mt = {} setmetatable(class, mt) if super then mt.__index原创 2016-01-28 20:24:26 · 894 阅读 · 0 评论 -
Lua中的协同程序 coroutine
Lua中的协同程序 coroutine Lua中的协程和多线程很相似,每一个协程有自己的堆栈,自己的局部变量,可以通过yield-resume实现在协程间的切换。不同之处是:Lua协程是非抢占式的多线程,必须手动在不同的协程间切换,且同一时刻只能有一个协程在运行。并且Lua中的协程无法在外部将其停止,而且有可能导致程序阻塞。 协同程序(Coroutine): 三个状态:susp转载 2015-05-25 21:49:26 · 515 阅读 · 0 评论 -
Lua 环境安装(Windows)
Lua 环境安装(Windows)原创 2015-05-17 10:56:03 · 7320 阅读 · 1 评论