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♪(・ω・)ノ!我是火火,火一般的男人!

相关推荐
染指111034 分钟前
50.第二阶段x86游戏实战2-lua获取本地寻路,跨地图寻路和获取当前地图id
c++·windows·lua·游戏安全·反游戏外挂·游戏逆向·luastudio
初学者7.37 分钟前
Webpack学习笔记(2)
笔记·学习·webpack
sjsjs1143 分钟前
【多维DP】力扣3122. 使矩阵满足条件的最少操作次数
算法·leetcode·矩阵
哲学之窗1 小时前
齐次矩阵包含平移和旋转
线性代数·算法·矩阵
Code out the future1 小时前
【C++——临时对象,const T&】
开发语言·c++
Sudo_Wang1 小时前
力扣150题
算法·leetcode·职场和发展
sam-zy1 小时前
MFC用List Control 和Picture控件实现界面切换效果
c++·mfc
qystca1 小时前
洛谷 P1595 信封问题 C语言dp
算法
aaasssdddd962 小时前
C++的封装(十四):《设计模式》这本书
数据结构·c++·设计模式
芳菲菲其弥章2 小时前
数据结构经典算法总复习(下卷)
数据结构·算法