lua
文章平均质量分 85
拂面清风三点水
这个作者很懒,什么都没留下…
展开
-
Unity中配合EmmyLua的Lua使用方案
本文分享Unity中配合EmmyLua的Lua使用方案现在很多大型项目使用Unity+Lua的开发模式, 大部分逻辑使用Lua编写.由于Lua是非强制类型的语言, 写起来非常灵活, 我们可以将任何对象当做值来使用:可以将函数当做值进行赋值, 清除, 传参可以将本来接受数值类型的类型传递一个函数, 一个表可以将一个表当做函数使用可以在表里存储任何类型的值(nil除外)…我们可以随心所欲的写, 只要满足基本的语法.当然, 灵活的意思就是限制较少, 后果也很明显: 代码难以维护, 无法在运行原创 2021-08-31 11:46:33 · 1824 阅读 · 0 评论 -
Unity中使用Lua时的动态刷新方案
本文分享Unity中使用Lua时的动态刷新方案相信Lua的使用大家已经不陌生了, 对于那些大部分逻辑使用lua的项目来说, 我们可以使用一个小技巧来提高日常的开发效率.Lua文件的加载Lua本身是解释执行的语言, 和C那些编译执行的语言不一样, 存在形式只是一个文本(当然也可以使用luajit预先编译).一个Lua文件被称之为Chunk, 可以理解为是一个模块, 代码块.使用require加载Lua文件之后, 会返回一张lua表或者返回true和false, 当然, 这取决于Lua文件的最后一个语原创 2021-08-30 11:25:38 · 1234 阅读 · 0 评论 -
Unity的协程和Lua的协程
本文分享Unity的协程和Lua的协程协程(Coroutine)在我们游戏开发中有着比较重要的地位.协程全名协同程序, 和线程不同, 协程是依附于主线程执行的, 相当于在主线程上夺取了一定的执行时间片.也可以理解为在主线程的调用之外开辟了一个单独的调用栈, 并在协程消亡之前能保存内部信息和与其它协程共享公用信息.协程实质是运行在主线程, 代码仍然是同步执行, 只是在某些点被挂起然后重新进行主线程其它代码的执行, 之后重新进入协程时可以从离开点继续执行. 这点和递归有些类似.协程的核心概念有挂起和恢原创 2021-07-30 20:11:40 · 1277 阅读 · 2 评论 -
Lua中的尾调用消除(tail-call eliminat)
本文分享Lua中的尾调用消除(tail-call eliminat)什么是尾调用在日常Lua的使用中, 我们经常会在一个方法的执行过程中调用其它方法.在这些方法中, 有一种特殊的形式值得大家注意, 可以做到一定程度上的优化.这个形式也就是所谓的尾调用, 顾名思义就是一个方法最后的跳出点是一个方法(包括递归调用自己)的调用.形如return func(args)的形式, 比如下面的例子:function test1() endfunction test2(xxx) endfunctio原创 2021-07-16 10:53:33 · 425 阅读 · 0 评论 -
lua的深拷贝
lua中的赋值操作在lua中, 如果直接将基础数据类型(除字符串和表)赋值给变量, 将会进行一次复制操作. 字符串和表则进行引用赋值. 字符串无法修改, 每次赋值和链接形成的新字符串会保存在固定区域, 字符串变量只是持有其引用. 所有的这些赋值操作都属于浅拷贝, 只是赋值值或者其引用. 当我们需要真正对表的所有内容进行复制时, 单纯的赋值操作是不够的, 我们需要进行"深拷贝".表的深拷贝深拷贝的原理很简单, 就是将表的基础数据类型属性(这里包含字符串类型)进行简单赋值(浅拷贝), 对表类型的属性原创 2020-11-18 11:19:37 · 1562 阅读 · 0 评论 -
lua中的闭包(closure或者匿名函数)的作用
匿名函数指的是在函数内部定义的函数.原创 2020-11-18 10:42:38 · 1685 阅读 · 0 评论 -
阅读lua源码建议的顺序
Recommended reading order: lmathlib.c, lstrlib.c: get familiar with the external C API. Don't bother with the pattern matcher though. Just the easy functions. lapi.c: Check how the API is impl...转载 2019-05-09 14:33:00 · 263 阅读 · 0 评论