尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
UnLua 入门:用 Lua 替换蓝图逻辑
UnLua 入门用 Lua 替换蓝图逻辑【免费下载链接】UnLuaA feature-rich, easy-learning and highly optimized Lua scripting plugin for UE.项目地址: https://gitcode.com/GitHub_Trending/un/UnLua你在做 UE 项目想把蓝图里的部分逻辑换成可热维护的脚本UnLua 作为 UE 的 Lua 脚本插件绑定一次蓝图后这些逻辑就写在Content/Script下的.lua文件里不用重写 C。它替你省掉了什么蓝图逻辑不用动 C蓝图里定义的 UFUNCTION 事件和函数在 Lua 里声明同名方法即可接管需要保留原实现时通过self.Overridden.{函数名}(self, ...)调回蓝图版本。反射对象直接访问UCLASS、UPROPERTY、UFUNCTION、USTRUCT、UENUM 在 Lua 侧全部可用不需要手写胶水代码。容器零转换TArray、TSet、TMap 直接读写Lua Table 与引擎容器之间不做拷贝转换。第一次跑起来UnLua 最小可行路径前置条件一个 UE 4.17 至 5.x 的工程。新建工程时选 C 项目而不是蓝图项目否则安装后打开工程会报could not be compiled见后文容易卡住的三个点。安装动作把本仓库的Plugins目录整体复制到你的工程根目录重新启动工程。验证信号打开任意蓝图编辑器工具栏出现 UnLua 分组且带 Bind 按钮说明插件已加载。然后做三件事顺序不能乱点 Bind 选Implement UnLuaInterface或在 Class Defaults 面板的 Implement Interface 里添加 UnLuaInterface给蓝图挂上接口。下图是 Class Settings 中勾选接口的操作位置实现接口要求的GetModule Name函数Return Value 填 Lua 脚本路径相对Content/Script如GameModes.BP_MyGameMode点 Bind 时按住Alt可以自动回填这个路径然后编译并保存蓝图。下图是GetModule Name函数的接法在 UnLua 工具栏选Create Lua Template按上一步的路径在Content/Script下生成对应.lua文件。下图是工具栏中的入口生成的模板长这样预置了Initialize、ReceiveBeginPlay等函数的注释骨架把模板里Initialize的注释取消写一行print(hello)运行时对象初始化处看到输出最小路径就跑通了。蓝图与 UnLua 的协作方式绑定、覆写与钩子绑定脚本文件的最小形态绑定成立需要三件事对齐蓝图实现了接口、GetModule Name返回了脚本路径、对应路径存在一个返回UnLua.Class()实例的脚本文件。最小完整形态如下local M UnLua.Class() function M:Initialize(Initializer) print(hello) end return M对象初始化时Initialize被调用控制台出现hello即绑定生效。事件覆写Receive 前缀与 Overridden在返回的 table 里声明Receive{事件名}或同名函数蓝图里的对应事件、函数就被 Lua 接管。要保留原实现时用Overridden调用蓝图版本function M:ReceiveBeginPlay() print(self:SayHi(world)) end function M:SayHi(name) local origin self.Overridden.SayHi(self, name) return origin .. Lua 实现 end注意Overridden调用要显式传self不能写成self.Overridden:SayHi(name)。完整写法见 02_OverrideBlueprintEvents.lua。三类钩子输入、动画、网络输入声明{KeyName}_Pressed/{KeyName}_Released动画通知声明Received_Notify网络同步声明OnRep_{变量名}RPC 声明{函数名}_Server_RPCfunction M:SpaceBar_Pressed() self:Jump() end function M:Received_Notify() return true end三类的完整示例分别在 03_BindInputs.lua、AN_FootStep.lua、ChatCharacter.lua。容易卡住的三个点新建工程打不开现象是安装插件后打开工程提示could not be compiled. Try rebuilding from source manually。原因是新建时选了蓝图项目而插件依赖 C 编译产物。解法以 C 项目重新建工程。打包后脚本加载不到现象是编辑器内正常、打包后 Lua 逻辑全部失效。原因是Content/Script没有被计入打包内容。解法在打包设置 Additional Non-Asset Directories to Package 中加入Script目录。覆写 Tick 不执行现象是ReceiveTick里写了逻辑却从不触发。原因是蓝图侧的 Tick 没有启用。解法在蓝图 EventGraph 里放一个Event Tick节点或在 C 里把bCanEverTick设为 true。接下来往哪走想弄懂为什么能覆盖读 UnLua_Programming_Guide.md 了解编程模式再读 How_To_Implement_Overriding.md 看两种覆盖机制的实现原理。想练手Content/Script/Tutorials/ 下 13 个示例覆盖输入绑定、委托、原生容器、网络同步到动画通知每个都对应Content/Tutorials下的现成关卡从01_HelloWorld改起。先让Initialize的输出稳定复现再逐个加钩子比通读文档更快建立手感。【免费下载链接】UnLuaA feature-rich, easy-learning and highly optimized Lua scripting plugin for UE.项目地址: https://gitcode.com/GitHub_Trending/un/UnLua创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

UniHacker 完整实操教程:三步给 Unity 调整许可证校验逻辑,打开工程不再要登录

UniHacker 完整实操教程:三步给 Unity 调整许可证校验逻辑,打开工程不再要登录

UniHacker 完整实操教程:三步给 Unity 调整许可证校验逻辑,打开工程不再要登录 【免费下载链接】UniHacker 为Windows、MacOS、Linux和Docker修补所有版本的Unity3D和UnityHub 项目地址: https://gitcode.com/GitHub_Trending/un/UniHacker UniHa…

📅 2026/10/21 20:19:17
free-stockdb 快速上手:30 分钟搭一套本地 A 股分钟K数据引擎

free-stockdb 快速上手:30 分钟搭一套本地 A 股分钟K数据引擎

free-stockdb 快速上手:30 分钟搭一套本地 A 股分钟K数据引擎 【免费下载链接】free-stockdb 面向 A 股日K、分钟K与ETF分钟数据的本地量化引擎,集成增量同步、本地缓存、复权、批量查询、回测与指标计算。 项目地址: https://gitcode.com/GitHub_Tren…

📅 2026/10/21 20:19:17
不再猜 OpenAI API 参数:3步用openai-openapi查清每个接口

不再猜 OpenAI API 参数:3步用openai-openapi查清每个接口

不再猜 OpenAI API 参数:3步用openai-openapi查清每个接口 【免费下载链接】openai-openapi OpenAPI specification for the OpenAI API 项目地址: https://gitcode.com/GitHub_Trending/op/openai-openapi openai-openapi 是官方发布的 OpenAI API 的 OpenA…

📅 2026/10/21 20:19:17
MORE NEWS

更多资讯

📰

Arm DesignStart Cortex-M3 AT421 包拆解与SoC集成实战

简介:Arm Cortex M3 DesignStart Kit AT421-MN-80001-r0p0-00rel0 是 ARM 官方推出的 Cortex-M3 处理器设计套件,面向嵌入式开发工程师、FPGA 原型验证人员及高校相关专业学习者,用于在可编程逻辑平台上快速评估与集成 32 位 RISC 内核&#…

📰

STM32裸机以太网实战:LAN8720A+LWIP ping通避坑指南

简介:本资源面向使用STM32F429IGT6进行以太网开发的嵌入式工程师与学习者,聚焦HAL库下LAN8720A PHY芯片的驱动与LWIP协议栈移植,解决无操作系统环境下网络通信与PING测试的完整实现问题。压缩包共1300个文件,约31.16MB&#xff0c…

📰

Spring Boot+Vue校园食堂供应链系统开发:采购库存全链路实战

1. 项目整体设计思路与需求拆解1.1 校园食堂供应链业务的核心痛点大学校园食堂和后厨供应链,看似只是“买菜、做饭、卖饭”三个环节,实际跑过一遍流程的人都知道,这里面藏着大量琐碎且容易出错的细节。我刚接触到这个“校园食堂供应链管理系统…

📰

实验步骤翻译官:用AI把操作手册写成学术文本

理工科的实验记录,写得像操作手册;论文要的,却是学术叙事。这个“好写作AI”干的事,就是把后者从前者的流水账里“翻译”出来。说白了,它就像一个实验步骤翻译官:你给它一段“我今天把样品放进烘箱&#xf…

📰

SFT监督微调实战:从数据构建到LoRA训练踩坑全解

在本地部署过几个开源基座模型之后,很多程序员的感受其实高度一致:模型确实能跑起来,但回答总不如官方Demo里那么“听话”。你问它东,它给你续写西;你要它按JSON格式输出,它偏要自由发挥加一段解释。这个差…

📰

CoppeliaSim+Python远程API:差速小车PID目标追踪仿真全解析

简介:这是一份面向机器人仿真学习与技术验证的Python小车追踪资源包,适用于需要借助Vrep/CoppeliaSim进行运动控制实验的开发者与学生。资源围绕“小车追踪目标点”这一典型场景,提供了从场景搭建、Python API通信到路径规划与控制算法实现的…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬