当前位置: 首页 > article >正文

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

文章目录

  • 总览描述(Blueprint_Mouse_Interaction)
  • 阅览解析
    • 1、PlayerControler分析
    • 2、拖拽球蓝图分析:
    • 3、移动的立方体分析:
  • 新概念总结
    • 致谢:

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


http://www.kler.cn/a/321759.html

相关文章:

  • 一种时间戳对齐的方法(离线)
  • 常用在汽车PKE无钥匙进入系统的高度集成SOC芯片:CSM2433
  • 使用c#实现TCP客户端与服务器端
  • 微信小程序自定义顶部导航栏(适配各种机型)
  • 【问卷调研】HarmonyOS SDK开发者社区用户需求有奖调研
  • 数字IC后端实现之Innovus specifyCellEdgeSpacing和ICC2 set_placement_spacing_rule的应用
  • postman发送与返回,GET与POST使用
  • 【架构】NewSQL
  • 初识C#(三)- 数组
  • 实战篇 | Homebrew 安装使用(Ubuntu 完整实操版)
  • Vue2配置环境变量的注意事项
  • SpringCloud Gateway 打印请求响应日志、跨域全局配置
  • LASSO回归(L1回归L1正则化)举例说明:正则化项使不重要的特征系数逐渐为零0的过程
  • 住宅ip有什么特殊点
  • 移动技术开发:HandlerAsyncTask
  • Java Stream流编程入门
  • CMMI认证的好处主要体现在以下这些方面
  • MYSQL SWAP 内存 vm.swappiness
  • PPP点对点协议(Point-to-Point Protocol)
  • 【RabbitMQ 项目】服务端:服务器模块
  • 26 基于STM32的智能门禁系统(指纹、蓝牙、刷卡、OLED、电机)
  • Python新手学习过程记录之基础环境:环境变量、版本区分、虚拟环境
  • 系列一、安装oracle11g
  • Snapchat API 访问:Objective-C 实现示例
  • nodejs 014: React.FC 与 Evergreen(常青树) React UI 框架的的Dialog组件
  • 求n的阶乘的相反数(c语言)