UE使用UnLua(一)

一、概述

Unlua是个功能丰富的插件,可以在UE中进行蓝图绑定,在Lua中进行逻辑开发,使用Lua热更新的特性,可以快速开发迭代表层逻辑

二、UnLua环境

首先下载UnLua的插件包,点击下载,不会吧不会吧还有人打不开(狗头)

下载之后,将插件目录下的Plugin文件夹,拷贝到项目根目录下

PS:如果使用的是蓝图工程,需要先在工程中新建C++类,再拷贝Plugin过去,否则无法编译!!

然后打开vs进行编译

PS:我使用的是UE4.27,编译时UnLua插件出现了报错:“error C4309: “static_cast”: 截断常量值”,这里顺便附上解决方法,直接双击错误到报错的那一行,将0xEF这三个地址后面加上u

这是因为0xEF会被当成有符号int,加上u之后就被当成了无符号int,编译就没问题了

编译成功之后,打开UE编辑器即可

三、UnLua使用

新建一个控件蓝图UMG_Login

 然后点击上方菜单的UnLua,选择绑定,并编译蓝图

之后打开蓝图图表,左侧Interface处,双击进入Get Module Name

 在函数返回值中,添加Lua文件的名称

命名规则:要添加文件夹的话就“文件夹.”的形式,点前面都是文件夹路径,Lua文件命名使用“C++前缀_类名_C”的形式,例如“UMG_Login_C

然后编译、保存。再点击UnLua插件,创建Lua模板

 打开我们创建的Lua文件,随便写点代码输出啥的,这里的Screen是我写的一个输出语句的类

local M = {}local PrintString = UE.UKismetSystemLibrary.PrintStringfunction M.Print(text, color, duration)color = color or UE.FLinearColor(1, 0, 1)duration = duration or 500PrintString(nil, text, true, false, color, duration)
endreturn M

 然后,我们打开关卡蓝图,按照同样的方式绑定并创建Lua模板,在关卡蓝图的Lua文件中的ReceiveBeginPlay方法中,加载我们刚刚新建的UMG

function M:ReceiveBeginPlay()local Widget = UE.UWidgetBlueprintLibrary.Create(self, UE.UClass.Load("/Game/UI/UMG_Login.UMG_Login_C"))-- local WidgetClass = UE.UClass.Load("/Game/UI/UMG_Login_C")-- local Widget = NewObject(WidgetClass, self)if Widget thenWidget:AddToViewport()end
end

在UnLua的git仓库中提供了加载方式

 这里说一下,我查了很多文章都是使用的官方的这种路径写法,而我就是找不到文件,头都大了

 

最后将路径改成了“/Game/UI/UMG_Login.UMG_Login_C” 之后,成功的将UMG加载到了屏幕中,也是记录一下这个问题

接下来持续学习UnLua的用法

学习交流:769397359

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/21848.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络-运输层

目录 一、运输层概述 二、运输层端口号、复用和分用的概念 (一)端口号 (二)发送方的复用和接收方的分用 (三)TCP/IP体系的应用层常用协议所使用的运输层熟知端口号 三、UDP和TCP的区别 四、TCP的流量…

DAY46:动态规划(八)01背包应用2:一和零(二维容量01背包)

文章目录 474.一和零思路为什么不是多重背包而是01背包与之前01背包问题的区别 DP数组的含义递推公式(也是求最大值)初始化遍历顺序完整版总结 474.一和零 本题属于 装满背包最多能有多少个物品 类型本题是容量有两个维度的背包,背包容量是m…

奥特曼与钢铁侠【InsCode Stable Diffusion美图活动一期】

文章目录 简介图片生成步骤更多体验方式 简介 InsCode 是一个一站式的软件开发服务平台,从开发-部署-运维-运营,都可以在 InsCode 轻松完成。 InsCode 的 Ins 是 Inspiration,意思是创作、寻找有灵感的代码。 Stable Diffusion是文图生成模型…

手机快充协议

高通:QC2.0、QC3.0、QC3.5、QC4.0、QC5.0、 FCP、SCP、AFC、SFCP、 MTKPE1.1/PE2.0/PE3.0、TYPEC、PD2.0、PD3.0/3.1、VOOC 支持 PD3.0/PD2.0 支持 QC3.0/QC2.0 支持 AFC 支持 FCP 支持 PE2.0/PE1.1 联发科的PE(Pump Express)/PE 支持 SFCP 在PP…

narak靶机详解

narak靶机复盘 首先对靶机进行扫描,找到靶机的真实ip地址。 然后dirb进行目录扫描,扫描到一个目录,我们打开发现是一个登陆界面。 并没有用户名和密码,我们就用cewl扫描这个网站,扫出一个字典,用来暴力破…

【微信小程序创作之路】- 小程序窗口整体配置(导航栏、标题)

【微信小程序创作之路】- 小程序窗口导航栏配置 第五章 微信小程序窗口导航栏配置 文章目录 【微信小程序创作之路】- 小程序窗口导航栏配置前言一、入口文件的配置二、页面配置三、全局默认窗口配置1.navigationBarTitleText:导航栏标题文字2.navigationBarBackgr…

Unity 限制范围-限制在4分之一圆柱形范围内活动

在我的游戏中,玩家的两只手操控中,不想让他们的手围着自己在一个圆形范围内随便乱跑,左手只想让他在左上角,右手在右上角范围活动。所以我制作这样一个算法来实现。 首先用Dot函数划分出4个区域,然后根据区域计算修正…

分配操作菜单

目录 概述介绍数据库后端前端效果展示 概述 在写后台管理系统时, 我们可以根据不同的登录人,给予不同的功能菜单 如 :给楼栋管理员登录时分配(楼栋管理,宿舍管理) 所以在数据库就要创建: 1.登录人与角色表, 2再给角色表分配操作菜单 登录时查询对应的操作菜单,将数据响应给前端…

记一次rabbitmq消息发送成功,消费丢失问题

记一次rabbitmq消息发送成功,消费丢失问题 背景 测试数据归档,偶现数据未归档 排查 idea线上调试,log日志,数据库消息发送记录,代码分块重复执行看哪块出的问题,结果均无问题,最后使用rabbi…

如何能够极速浏览大体积tif影像文件?

在无人机航拍的高清正射影像中,大体积文件是普遍现象,几十GB的TIFF文件很常见。常规的浏览方式特别容易导致卡顿,用户需要花费半天时间等待影像图的呈现。 建议您尝试将tiff格式快速转换为mbtiles或lrp格式,mbtiles和lrp格式专门…

UE编辑器灯光颜色,能量传入Shader流程

编辑器界面: 代码流程: FLinearColor ULightComponent::GetColoredLightBrightness() const {// Brightness in Lumensfloat LightBrightness ComputeLightBrightness();FLinearColor Energy FLinearColor(LightColor) * LightBrightness;if (bUseTem…

如何在Windows 8和10中检查最后一次的启动模式

Windows 8、Windows 8.1 和 Windows 10 中的用户可以在 PC 上执行混合关机(快速启动)、完全关机或休眠。 快速启动(又名:hiberboot、混合启动或混合关机)在 Windows 中默认打开,是一种帮助你的电脑在关机后更快启动的设置。甚至比休眠还要快。 休眠是一种主要为笔记本电…