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

news2024/9/24 4:49:37

文章目录

  • 总览描述(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.coloradmin.cn/o/2159326.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL tinyint(1)类型数据在经过flink cdc同步到doris后只有0/1问题定位与解决

背景: 近期在负责公司数据仓库搭建事宜,踩了一些坑后,终于通了,目标报表也成功迁移到了新方案上,可在数据验收的时候发现,同一个订单查询出了多条记录,原本以为只是简单的left join出多条记录问…

植物检测系统源码分享

植物检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

Kubernetes调度单位Pod

Kubernetes调度单位Pod 1 Pod简介 不直接操作容器container。 一个 pod 可包含一或多个容器(container),它们共享一个 namespace(用户,网络,存储等),其中进程之间通过 localhost 本地…

Linux环境下安装部署MySQL8.0以上(内置保姆级教程) C语言

一、环境搭建、 1 、安装MySQL服务端与客户端 sudo apt-get install mysql-server //mysql服务端安装 。 (现在只安装这一个就够了,包含了客户端的) sudo apt-get install mysql-client //mysql客户端安装。 mysql服务器端程序&…

jmeter本身常用性能优化方法

第一种设置: 修改Jmeter.bat文件,调整JVM参数(修改jmeter本身的最小最大堆内存),默认都是1个G set HEAP-Xms5g -Xmx5g -XX:MaxMetaspaceSize256m我的本机内存是8G,那最大可以设置870%(本机内存的70%)5.6g 这里我设置的5g 如果…

CSS的盒子模型(Box Model)

所有HTML元素都可以看作盒子,在CSS中盒子模型是用来设计和布局的,CSS盒子模型本质上是一个盒子,分装周围的HTML元素包括:外边距,边框,内边距和实际内容。 Margin(外边距) 清除边框…

CSS的弹性盒子模型(Flex box)

弹性盒子模型是CSS3的一种新的布局模式,弹性盒是一种当页面需要适应不同的屏幕大小以及设备类型时确保拥有合适的布局方式,引入弹性盒子模型的目的时提供更加有效的方式来对一个容器中的子元素进行排列,对齐和分配空白空间。 弹性盒子由弹性容…

Linux复习--网络基础(OSI七层、TCP三次握手与四次挥手、子网掩码计算)

一、ISO/OSI七层模型的分层与作用 1、ISO/OSI的七层模型 2、作用 应用层:为用户提供服务,给用户一个操作界面表示层:数据提供表示;加密;压缩;会话层:确定数据是否需要进行网络传递传输层&…

好用的idea方法分隔符插件

好用的idea方法分隔符插件

OpenCV特征检测(12)检测图像中的潜在角点函数preCornerDetect()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 计算用于角点检测的特征图。 该函数计算源图像的基于复杂空间导数的函数 dst ( D x src ) 2 ⋅ D y y src ( D y src ) 2 ⋅ D x x src − 2 …

OpenCV 3

模板匹配方法 尽量采用归一化的方法,因为它更加精细。 匹配效果展示 匹配单一图像 这是一段Python代码,主要使用了OpenCV库进行图像处理。这段代码的主要功能是通过模板匹配方法在一张大图中找到一个小图的位置。 具体来说: - 第一行的for…

项目实战:Qt+OSG爆破动力学仿真三维引擎测试工具v1.1.0(加载.K模型,子弹轨迹模拟动画,支持windows、linux、国产麒麟系统)

若该文为原创文章,转载请注明出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/142454993 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、Op…

验收测试:从需求到交付的全程把控!

在软件开发过程中,验收测试是一个至关重要的环节。它不仅是对软件质量的把关,也是对整个项目周期的全程把控。从需求分析到最终的软件交付,验收测试都需要严格进行,以确保软件能够符合预期的质量和性能要求。 一、需求分析阶段 在…

[uni-app]小兔鲜-01项目起步

项目介绍 效果演示 技术架构 创建项目 HBuilderX创建 下载HBuilderX编辑器 HBuilderX/创建项目: 选择模板/选择Vue版本/创建 安装插件: 工具/插件安装/uni-app(Vue3)编译器 vue代码不能直接运行在小程序环境, 编译插件帮助我们进行代码转换 绑定微信开发者工具: 指定微信开…

Linux 基本指令(二)

目录 1. more指令 2. less指令(重要) 3. head指令 4. tail指令 5. date指令 (1)可以通过选项来指定格式: ​编辑 (2)在设定时间方面 (3)时间戳 6. cal指令 7. find指令 8. grep指令 9. alias指令 10. zip指令与unzip指令 (1). zip指令 (2). unzip指令…

链表分割-----------lg

现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。 我们可以假设x为36,则小于36都排在前边,>3…

桌面便签哪个好用?好用的便签软件推荐?

随着信息技术的发展,我们的生活方式也发生了翻天覆地的变化。从纸质笔记本到电子便签,这不仅仅是载体的转换,更是思维习惯的一次革新。在这个数字时代,如何利用科技工具来辅助我们更好地管理时间和信息,成为了值得探讨…

linux环境oracle11.2.0.4打补丁(p31537677_112040_Linux-x86-64.zip)

上传补丁及opatch工具 创建目录并上传opatch工具和补丁包 [oraclerhel64 ~]$ mkdir /u01/psu [oraclerhel64 ~]$ cd /u01/psu [oraclerhel64 psu]$ ll total 514572 -rw-r--r-- 1 oracle oinstall 391781147 Sep 23 17:37 p31537677_112040_Linux-x86-64.zip -rw-r--r-- 1 or…

中电金信 :基于开放架构的私有云建设实践

01开放架构私有云诞生背景 随着国产化创新建设的深化,产业侧行业软件持续进行云原生改造,金融机构拥抱云和容器技术,实现数智化转型已是大势所趋。近年,云原生技术以及架构发展速度更是惊人,私有云开始有了新架构、有了…

idea使用spring initializr快速创建springboot项目

idea使用spring initializr快速创建springboot项目 1.打开idea,新建项目如图,选择好java版本,我这里是17。2.点击next,首先选择springboot版本,我这里选择3.3.4。勾选springweb,它会帮我们下载关于springmv…