文章目录
总览描述(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♪(・ω・)ノ!我是火火,火一般的男人!