90天入门UE引擎开发--学习日记(48/100)

视频教程:UI能够根据距离远近缩放,并且能够鼠标追踪识别UI

关键词:linetrace/C++/十字准星Crosshair/碰撞盒

007 Trace for Widget

(12分钟的时候 UE5代码书写格式↓↓↓)

 

制作3dUI(出现在关卡里的)

先简单的创建一个血条widget,重命名为HelathBar

默认的Widget有很多弊端:大小不会随着摄像机的拉远而变小,并且遇到遮挡并不会被遮挡 

 

将场景里的小黄人改成蓝图

直接选择创建 

 这样子就能控制血条始终朝向屏幕,并且有大小遮挡关系。

制作一个3D按钮

创建一个新UI蓝图WB_Interactive

制作一个正方形按钮,设置鼠标悬停的时候会变粉色 

设置蓝图事件,新建一个实数变量Number,

并回到编辑面板里将文本与Number变量绑定起来 

 在场景里新建一个actor加上刚刚的WB_Interactive组件,并摆放到合适的位置

在第一人称蓝图里加上控件交互组件,放在枪的子集里

把交互组件放到枪口上 

书写交互蓝图

这样子之后,每点击数字按钮,数字都能变大 

总结步骤

1.要有widget interaction(控件交互组件)

2.通过控件交互组件,击中UI

3.发送按键信息

制作3D悬浮键盘

新建一个actor类BP_DIsplay与一个UI控件WB_Display

把这个WB_Display放入BP_Display中,勾选以所需大小绘制,放到场景的适合位置

再制作键盘WB_Keypad,并设置好悬停时候改变颜色。与之前一样,新建一个蓝图类BP_Keypad,放入Widget控件(WB_Keypad),并把BP_Keypad放到场景里(勾选Draw at Desired Size)

下面书写通信蓝图

首先保证这里的playerController的点击事件已启用

来到WB_Keypad的蓝图面板中,首先先新建两个变量

设置一个事件:即在键盘输入时,不会获取焦点,焦点始终停留在之前的上面的文本框里

 在WB_Keypad蓝图中,新建一个事件分发器,并把enter按钮绑定给他

 来到BP_Keypad

纯了解:

UI的射线碰撞与下面两个变量有关,相等的话就能调用

拖拽UI

新建一个WB_GragBar,里面简单地制作一个血条

 再新建一个WB_VisualDrag,同样制作一个血条(用作拖拽时候呈现的图片)

新建一个类,重命名为DragDropOperation

 在上面这个DragDropOperation蓝图类里面新建DragOffset的变量

 

重写重载函数On Drag Detected

 新建一个UI控件WB_DragScreen

设置可视性,释放时候可以检测 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值