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

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

相关文章:

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

文章目录 总览描述(Blueprint_Mouse_Interaction)阅览解析1、PlayerControler分析2、拖拽球蓝图分析:3、移动的立方体分析: 新概念总结致谢: 总览描述(Blueprint_Mouse_Interaction) 打开关卡后…...

得物App荣获新奖项,科技创新助力高质量发展

近日,备受瞩目的2024中国国际服务贸易交易会(简称“服贸会”)在北京盛大开幕,这一全球唯一的国家级、国际性、综合型服务贸易盛会再次汇聚了全球服务贸易领域的精英与前沿成果。服贸会由商务部和北京市政府携手打造,并…...

傅里叶变换(对称美)

傅里叶变换(对称美) 冲浪时发现的有趣文章,学习自https://zhuanlan.zhihu.com/p/718139299 摘下来的内容: 傅里叶变换之所以“怪美的嘞”,根本在于它有一种内在的对称性,这一点在上面的图并没有表现出来…...

基于单片机与 PC 机通信的数据采集控制系统设计

摘 要 : 设计出基于单片机与 PC 机通信的数据采集控制系统方法 。 被控对象经传感器 、 电压变换电路 、 A/D 转换芯片与单片机相连, 可将现场参数信息传送至单片机 ; 单片机经继电器驱动控制被控对象运行 。 单片机与 PC 机经电平转换芯片相连, 实现远程通信功能 。…...

MyBatis参数处理

MyBatis 参数处理详解 在 MyBatis 中,参数处理是非常重要的部分,它支持灵活的参数传递方式,以实现与数据库的交互。MyBatis 提供了多种方式来传递参数,包括单个参数、多参数、Java 对象和集合等,这些参数通过 SQL 语句…...

Beyond 5.5旗舰版和高级版激光软件

Beyond 5.5旗舰版和高级版激光软件具有以下一些特点和功能: 1. 强大的功能特性: • 多媒体支持:它是真正的多媒体控制激光软件,除支持基本的激光图案外,还支持视频、3D 动画和绘图程序等,为用户提供了丰富…...

python爬虫/引用requests/基本使用

1.安装requests 进入控制台使用该命令安装requests pip3 install requests 2.对网站使用get请求 这里用对网站进行get请求,然后打印。 import requests //引用requestsresponse requests.get(urlhttps://www.bilibili.com/)print(response.text) 3.对网站使用…...

输电线塔目标检测数据集yolo格式该数据集包括2644张输电线塔高清图像,该数据集已经过yolo格式标注,具有完整的txt标注文件和yaml配置文件。

输电线塔目标检测数据集yolo格式 该数据集包括2644张输电线塔高清图像,该数据集已经过yolo格式标注,具有完整的txt标注文件和yaml配置文件。 输电线塔目标检测数据集 数据集名称 输电线塔目标检测数据集(Transmission Tower Object Detecti…...

MySQL之基本查询(二)(update || delete || 聚合函数 || group by)

目录 一、表的更新update 二、表的删除delete 三、聚合函数 四、group by 分组查询 一、表的更新update 语法: UPDATE table_name SET column expr [, column expr ...] [WHERE ...] [ORDER BY ...] [LIMIT ...] 使用实列: ~ 将孙悟空同学的数学…...

全栈开发(五):初始化前端项目(nuxt3+vue3+element-plus)+前端代理

1.初始化前端项目 Nuxt3:搭建项目_nuxt3 项目搭建-CSDN博客、 2.配置代理 nuxt.config.ts // https://nuxt.com/docs/api/configuration/nuxt-configexport default defineNuxtConfig({devtools: { enabled: true },modules: ["element-plus/nuxt", "pinia/n…...

Linux环境变量进程地址空间

目录 一、初步认识环境变量 1.1常见的环境变量 1.2环境变量的基本概念 二、命令行参数 2.1通过命令行参数获取环境变量 2.2本地变量和内建命令 2.3环境变量的获取 三、进程地址空间 3.1进程(虚拟)地址空间的引入 3.2进程地址空间的布局和理解 …...

C++读取txt文件中的句子在终端显示,同时操控鼠标滚轮(涉及:多线程,产生随机数,文件操作等)

文章目录 运行效果功能描述代码mian.cppincludeMouseKeyControl.hTipsManagement.h srcMouseControl.cppTipsManagement.cpp 运行效果 功能描述 线程一:每隔n随机秒,动一下鼠标滚轮,防止屏幕息屏。 线程二:运行时加载txt文件中的…...

Android 中使用高德地图实现根据经纬度信息画出轨迹、设置缩放倍数并定位到轨迹路线的方法

一、添加依赖和权限 在项目的build.gradle文件中添加高德地图的依赖&#xff1a; implementation com.amap.api:maps:latest_version在AndroidManifest.xml文件中添加必要的权限&#xff1a; <uses-permission android:name"android.permission.ACCESS_FINE_LOCATIO…...

LeetCode从入门到超凡(二)递归与分治算法

引言 大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年9月学习赛的LeetCode学习总结文档&#xff1b;在算法设计中&#xff0c;递归和分治算法是两种非常重要的思想和方法。它们不仅在解决复杂问题时表…...

superset 解决在 mac 电脑上发送 slack 通知的问题

参考文档: https://superset.apache.org/docs/configuration/alerts-reports/ 核心配置: FROM apache/superset:3.1.0USER rootRUN apt-get update && \apt-get install --no-install-recommends -y firefox-esrENV GECKODRIVER_VERSION0.29.0 RUN wget -q https://g…...

SQL_UNION

在 SQL 中使用 UNION 操作符时&#xff0c;被联合的两个或多个 SELECT 语句的列数必须相同&#xff0c;并且相应的列数据类型也需要兼容。这是因为 UNION 操作符会将结果组合成单个结果集&#xff0c;每个 SELECT 语句的结果行将按顺序放置在结果集中。 例如&#xff0c;如果你…...

高等代数笔记(2)————(弱/强)数学归纳法

数学归纳法的引入情景其实很简单&#xff0c;就是多米诺骨牌。 推倒所有多米诺骨牌的关键就是推倒第一块&#xff0c;以及确保第一块倒下后会带动第二块&#xff0c;第二块带动第三块&#xff0c;以此类推&#xff0c;也就是可以递推。由此我们可以归纳出所有的多米诺骨牌都可…...

模拟自然的本质:与IBM量子计算研究的问答

量子计算可能是计算领域的下一个重大突破&#xff0c;但它的一般概念仍然处于炒作和猜测的现状&#xff1f;它能破解所有已知的加密算法吗&#xff1f;它能设计出治愈所有疾病的新分子吗&#xff1f;它能很好地模拟过去和未来&#xff0c;以至于尼克奥弗曼能和他死去的儿子说话…...

Robot Operating System——带有时间戳和坐标系信息的多边形信息

大纲 应用场景1. 机器人导航场景描述具体应用 2. 环境建模场景描述具体应用 3. 路径规划场景描述具体应用 4. 无人机飞行控制场景描述具体应用 5. 机械臂运动控制场景描述具体应用 6. 自动驾驶车辆控制场景描述具体应用 定义字段解释 案例 geometry_msgs::msg::PolygonStamped …...

内网穿透(当使用支付宝沙箱的时候需要内网穿透进行回调)

内网穿透 一、为什么要使用内网穿透&#xff1a; 内网穿透也称内网映射&#xff0c;简单来说就是让外网可以访问你的内网&#xff1a;把自己的内网(主机)当做服务器&#xff0c;让外网访问 二、安装路由侠 路由侠-局域网变公网 (luyouxia.com) 安装成功如下&#xff1a; 三…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...