随笔分类 -  lua

摘要:UnLua优势在于自动绑定蓝图, 实现了类似于Unity上给GameObject挂脚本的效果; 设定绑定文件后, 可以直接访问所属Obj的元素, 极大减少不同对象之间的数据访问代码. 但是缺陷也很严重, Lua的执行非常依赖蓝图, 当蓝图未能成功加载,那么Lua也没机会执行, 这对于一些情况下可能不 阅读全文
posted @ 2021-01-17 23:16 剑过不留痕残月分断魂 阅读(685) 评论(0) 推荐(0) 编辑
摘要:LuaJIT自带的编译脚本虽然很纯正,不依赖编译器之外的程序,但是在不便于阅读和维护,打算改为xmake描述编译过程。 原版在Windows上是一个简单的bat定义了编译过程,内容比较简洁,已经翻译成了对应的xmake,只编译了链接库,没编译luajit.exe,暂时不需要exe 翻译过程借助了编译 阅读全文
posted @ 2020-05-17 14:09 剑过不留痕残月分断魂 阅读(460) 评论(0) 推荐(0) 编辑
摘要:为了尝试将LuaJIT接入虚幻Lua插件之中,需要预编译LuaJIT链接库,在桌面平台问题不大, 主要是移动平台,涉及跨平台编译,因为对跨平台编译具体细节没有系统研究,这里先记录一下跨平台编译LuaJIT的主要过程 由于官方提供的编译脚本仅有MakeFile,所以暂时只能跨平台编译,在Windows 阅读全文
posted @ 2020-05-16 21:12 剑过不留痕残月分断魂 阅读(557) 评论(0) 推荐(0) 编辑
摘要:在UnLua插件中可以直接使用协程编写蓝图中LatentAction逻辑,实现延迟执行线性逻辑。 典型用例:在蓝图中可以调用delay函数,不过,仅能在事件图表使用,因为整个事件图标是作为一个蓝图函数处理的,在Delay或者说是LatentAction位置就记录节点ID,待计时器触发,继续执行图表函 阅读全文
posted @ 2020-04-21 13:47 剑过不留痕残月分断魂 阅读(1088) 评论(0) 推荐(0) 编辑
摘要:前几回初步实现了在LUA层中新建UClass,让C++自动调用Lua函数,但因为虚幻是单个脚本状态机,不方便处理多个LUA状态机,本文尝试初步解决该问题。 参考UnLua插件后暂时搁置在LUA中新建UClass的方式,改用Hook的形式修改先修的UClass里面的函数实现C++自动调用LUA函数。 阅读全文
posted @ 2020-04-15 18:32 剑过不留痕残月分断魂 阅读(775) 评论(0) 推荐(0) 编辑
摘要:接上一回处理多个LUA状态机问题,暂时无法解决单个虚幻状态机对应多个LUA状态机问题,故先搁置,转而看看UnLua的设计,本文记录对其改进过程。 UnLua里面有个非常便捷的功能,就是在蓝图编辑器界面可以直接生成LUA代码模板,开始以为是基于反射生成的,看了下发现其实是从内置的LUA文件复制的, 非 阅读全文
posted @ 2020-04-09 12:40 剑过不留痕残月分断魂 阅读(1360) 评论(0) 推荐(0) 编辑
摘要:此一回主要研究虚幻的反射类。 虚幻的反射类跟C++的静态编译类不同,可以在Runtime增删改,其概念更接近LUA的table。 UClass实质功能就是描述一段内存的内容,使用FProperty描述成员变量,UFunction描述反射函数。 FProperty描述了成员变量在Container(即 阅读全文
posted @ 2020-04-03 18:28 剑过不留痕残月分断魂 阅读(715) 评论(0) 推荐(0) 编辑
摘要:上一回实现了运行时创建枚举,这次再试试结构体,虚幻中的反射结构体是UScriptStruct的实例.同样,蓝图新建的结构体是UUserDefinedStruct的实例. 结构体由多个字段构成,虚幻中称为属性,即FProperty,FProperty描述了一个变量在一段内存的位置和大小,结构体通过链表 阅读全文
posted @ 2020-03-30 21:59 剑过不留痕残月分断魂 阅读(601) 评论(0) 推荐(0) 编辑
摘要:虚幻4中的蓝图系统可以在运行时创建枚举/结构体/类(把编辑器看作一个基于Runtime引擎完整的游戏产品),非常好用, 但是在实际使用中由于蓝图只能在编辑器创建,还是略有麻烦,所以准备在其他脚本语言实现无编辑器,此处以LUA为例. inside unreal系列文章有介绍反射系统,里面提以枚举入手, 阅读全文
posted @ 2020-03-30 21:18 剑过不留痕残月分断魂 阅读(385) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示