UE学习篇ContentExample解读-----------Blueprint_Mouse_Interaction

文章目录

总览描述(Blueprint_Mouse_Interaction)

打开关卡后,引入眼帘的就是针对关卡的总体性文字描述,这里翻译一下:

​ 这个案例展示了你是如何使用鼠标输入控制你的游戏,关键点就是设置Player Controler的鼠标使能。按住并保持鼠标左键来拖拽球,点击左键来停止和开始移动的立方体!

阅览解析

关键概念:

  • Player Controller
  • 关卡蓝图
  • 序列动画

1、PlayerControler分析

上面的文本提到了一个很关键的概念,Player Controller,自如其名,它就是玩家控制器,所以用它来使能鼠标操作的内容!我们打开蓝图看一下

通过上述操作,可以打开对应玩家控制器的蓝图,这里叫做:MI_PlayerControler

MI_PlayerControl蓝图分析:

观察细节面板,我们通过观察右侧的小箭头,得知,这三个被修改过,分别是:

  • 显示鼠标光标
  • 使能Click事件
  • 使能Mouse over事件

因而我们得知:如果需要触发鼠标的交互事件,是需要设置Player Controller对应的使能!

2、拖拽球蓝图分析:

让我们点击关卡中,所谓的可以鼠标左键拖拽的球,打开它的蓝图

MI_Sphere蓝图分析:

1、基本结构

基本上就是一个静态网个体,给了个球的模型,其他没有

2、构造脚本

构造脚本中,给他设置了一个默认的BasicAsset02的材质

3、事件图表

因为内容比较多,一次截图放不下,咱们分块讲解!

(1)鼠标Over事件相应

逻辑基本上就是Horver与否时,切换鼠标形态,设置模型的不同材质,还有设置Gate门结点的后一部分如下:

这部分逻辑其实也很简单,就是根据Gate结点是否开启,决定是否根据鼠标点击的位置,设置球的XY坐标位置,Z是不变的!

(2)鼠标Click事件响应

我们这里不看touch相关的内容,Click鼠标点击时,做了这几个事情:

  • 取消Mouse Over的事件使能
  • 给模型设置另一个材质
  • 设置Gate门节点开启

(3)鼠标Release事件响应

鼠标释放的时候,就是做了点击相反的事情,如下:

  • 开启Mouse Over的事件使能
  • 给模型设置回原本材质
  • 设置Gate门节点关闭

(4)Tick事件响应

基本上Tick逻辑就是不同的在尝试Gate结点的进入逻辑

**总结一下:**拖拽的本质,就是在按下的时候打开Gate结点,松开的时候关闭Gate结点,Tick事件不停的执行Gate之后的逻辑,计算鼠标点击位置,设置球的XY坐标!解析完毕!

3、移动的立方体分析:

我们进入关卡,点击Cube

咦,怎么回事,他就是个普通的StaticMeshActor,怎么动起来的呢?这时候去看看关卡蓝图!

打开关卡蓝图:

我们发现有三块区域

第一块区域:

这个逻辑也很简单,就是鼠标悬浮到Cube上面改变鼠标的样式

第二块区域:

这个我们观察On Clicked事件,就是鼠标点击事件,这里采用Flip Flop做反转流控制,这里我们无意中发现了序列动画相关的内容,鼠标点击就是控制这个动画的循环播放和暂停!

Flip Flop结点的控制逻辑就是,第一次进入执行A,第二次进入执行B,循环往复!

第三块区域:

似乎就是一些初始化,禁用HUD,设置Player隐藏,混合镜头到场景的摄像机!

我们回过头来看看第二块区域关卡的序列动画:

点击我们发现,其实就是针对这个Cube的三个关键位置帧动画

至此全部解析完毕,还是非常容易的案例!

新概念总结

1、玩家控制器

2、关卡蓝图

3、关卡序列动画

4、Gate结点

致谢:

今天的学习就到此为止啦,喜欢的小伙伴点点关注+赞哦!感谢大家Thanks♪(・ω・)ノ!我是火火,火一般的男人!

相关推荐
雨中rain15 分钟前
贪心算法(1)
算法·贪心算法
不爱学习的YY酱22 分钟前
【操作系统不挂科】<CPU调度(13)>选择题(带答案与解析)
java·linux·前端·算法·操作系统
平头哥在等你33 分钟前
求一个3*3矩阵对角线元素之和
c语言·算法·矩阵
飞滕人生TYF36 分钟前
动态规划 详解
算法·动态规划
_OLi_39 分钟前
力扣 LeetCode 106. 从中序与后序遍历序列构造二叉树(Day9:二叉树)
数据结构·算法·leetcode
小A1591 小时前
STM32完全学习——使用SysTick精确延时(阻塞式)
stm32·嵌入式硬件·学习
ahadee1 小时前
蓝桥杯每日真题 - 第18天
c语言·vscode·算法·蓝桥杯
就爱六点起1 小时前
C/C++ 中的类型转换方式
c语言·开发语言·c++
小A1591 小时前
STM32完全学习——使用标准库点亮LED
stm32·嵌入式硬件·学习
朝九晚五ฺ2 小时前
【Linux探索学习】第十五弹——环境变量:深入解析操作系统中的进程环境变量
linux·运维·学习