UE4学习笔记 FPS游戏制作29 更换武器时更换武器的图标

文章目录

    • 制作物体图标UI
    • 添加获取武器图标的方法
    • 使用事件分发器,通知UI要换枪
      • 定义事件分发器
      • 调用事件分发器
      • 注册事件分发器

制作物体图标UI

在Fpp-UI上添加一个图片,改名为五weaponIcon,勾选SizeToContent,锚点放在右下角,对齐改为1,1,这样缩放时会向左上扩张
在这里插入图片描述
代码修改Image的图片
这里GetIcon是下一步中创建的方法,核心节点是使用Image的引用GunIcon调用SetBrushFromTexture节点
在这里插入图片描述
这里出现了GetCurrentGun获取不到枪的情况,但是在早期编辑时是可以获取的到的,猜测是编译后执行顺序发生了改变,解决方案是在GameMode里,把生成UI推迟一帧
在这里插入图片描述

添加获取武器图标的方法

在武器的基类Gun里添加一个纯方法GetIcon,返回值为Texture2d的引用

在这里插入图片描述
在Rifle里重写
在这里插入图片描述
在launcher里重写
在这里插入图片描述

使用事件分发器,通知UI要换枪

定义事件分发器

只有玩家换枪时才需要更换图标,所以只改Fppshooter
在Fppshooter左侧我的蓝图里最下边定义一个事件分发器
在这里插入图片描述
点击分发器的名字,不要双击进去点图标,直接在列表里点名字,增加一个输入参数,类型Texture2D的引用
在这里插入图片描述

调用事件分发器

在switchWeapon方法的最后追加调用事件分发器 call Change Gun Dispatcher

在这里插入图片描述

注册事件分发器

打开Fpp_UI蓝图的事件视图
序列0为旧的获取玩家引用的方法,最后追加了先获取一次武器图标的方法
在这里插入图片描述

序列1里为注册事件分发器
在这里插入图片描述
1 玩家的引用,事件分发器需要使用发出事件的对象注册
2 绑定事件的方法 bind event to Change Gun Dispatcher
3 用来注册的自定义事件,右键输入custom,选择添加自定义事件
4 武器图标的图片,调用它的设置图片方法

此时运行游戏,按下Q键,切换武器的同时,也可以切换图标

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899409.shtml

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

相关文章

SpringMVC 请求与响应处理详解

引言 在 Java Web 开发中,SpringMVC 作为 Spring 框架的重要模块,提供了强大的请求和响应处理机制。本文将深入探讨 SpringMVC 中请求和响应的处理方式,结合实际案例,帮助开发者更好地理解和应用这些功能。 一、SpringMVC 请求处…

从零开始的 Kafka 学习(四)| 生产消息

1. 生产消息 1.1 生产消息的基本步骤 (一)创建Map类型的配置对象,根据场景增加相应的配置属性: 参数名参数作用类型默认值推荐值bootstrap.servers集群地址,格式为:brokerIP1:端口号,brokerIP2:端口号必…

k8s1.22 kubeadm 部署

k8s1.22 kubeadm 部署 1、更改hostname hostnamectl set-hostname master-001 && su root hostnamectl set-hostname node-001 && su root hostnamectl set-hostname node-002 && su root配置hsots cat >> /etc/hosts <<EOF 192.168.20.…

新手村:逻辑回归-理解04:熵是什么?

新手村&#xff1a;逻辑回归04&#xff1a;熵是什么? 熵是什么? 前置条件 在开始学习逻辑回归中的熵理论之前&#xff0c;需要掌握以下基础知识&#xff1a; 概率论与统计学&#xff1a; 概率分布&#xff08;如伯努利分布、正态分布&#xff09;。条件概率和贝叶斯定理。期…

STM32通用定时器结构框图

STM32单片机快速入门 通用定时器框图 TIM9和TIM12 通用定时器框图 TIM9和TIM12 &#xff08;二&#xff09; 通用定时器框图

3.28-2 jmeter读取mysql

jmeter操作mysql 1.下载数据驱动&#xff0c;安装数据驱动 &#xff08;1&#xff09;存放四个路径 a.jre下的lib C:\Program Files\Java\jre1.8.0_60\lib &#xff08;2&#xff09;存放在jre 下的lib 中的ext 路径&#xff1a; C:\Program Files\Java\jre1.8.0_60\lib\…

TDengine 中的保留关键词

简介 本节很重要&#xff0c;请大家收藏&#xff0c;避免在编写程序的时候踩坑。因为关键字是被 TDengine 系统使用的&#xff0c;如果你在 SQL 中使用了保留关键词&#xff0c;并且没有被反引号包括时&#xff0c;会报语法错误&#xff0c;当你不知道这个是保留关键词时&…

美摄科技开启智能汽车车内互动及娱乐解决方案2.0

在科技飞速发展的今天&#xff0c;汽车已不再仅仅是简单的代步工具&#xff0c;而是逐渐演变为集出行、娱乐、社交于一体的智能移动空间。美摄科技&#xff0c;作为前沿视觉技术与人工智能应用的领航者&#xff0c;凭借其卓越的技术实力和创新精神&#xff0c;携手汽车行业&…

Postman CORS 测试完全指南:轻松模拟跨域请求,排查 CORS 相关问题

在使用 Postman 进行 API 测试时&#xff0c;通常不会遇到跨域问题&#xff0c;因为 Postman 是一个独立的客户端应用程序&#xff0c;不同于在浏览器中运行的 JavaScript 代码&#xff0c;它没有同源策略&#xff08;SOP&#xff09;的限制。跨域资源共享&#xff08;CORS&…

基于SpringBoot和Vue的SQL TO API平台的设计与实现

文章目录 前言一、系统功能模块二、数据库设计1. 实体属性图1. 实体属性图1.1 职员表1.2 数据源配置表1.3 接口配置表1.4 请求记录表 2. E-R图 三、系统实现1. 登录页面2. 职员管理页面1.1 创建用户1.2 编辑用户 2. 数据源管理2.1 创建数据源2.2 编辑数据源 3. 接口管理3.1 创建…

【Portainer】Docker可视化组件安装

Portainer Portainer 是用于管理容器化环境的一体化平台工程解决方案&#xff0c;提供广泛的定制功能&#xff0c;以满足个人开发人员和企业团队的需求。 官方地址: https://www.portainer.io/ 安装 在 WSL / Docker Desktop 上使用 Docker 安装 Portainer CE 通过命令或UI页…

Gateway实战(二)、负载均衡

spring cloud- Gateway实战二:负载均衡 负载均衡简单了解一)、实操案例-自动负载均衡二)、实操案例-手动负载均衡1、手动负载均衡方式一2、手动负载均衡方式二负载均衡 简单了解 我们引入负载均衡,主要是为了 让网络流量能均匀的分发到多个服务器上,以此来提高系统性能、…

MATLAB 2024b深度学习,图神经网络(GNN)

随着人工智能技术向多学科交叉融合与工程实践领域纵深发展&#xff0c;MATLAB 2024b深度学习工具箱通过架构创新与功能强化&#xff0c;为科研创新和行业应用提供了全栈式解决方案。本培训基于该版本工具链的三大革新方向展开&#xff1a;一是构建覆盖经典模型与前沿架构的体系…

unity中Xcharts图表鼠标悬浮表现异常

鼠标悬浮在面板附近&#xff0c;只显示单独的一个项目 而且无论鼠标如何移动&#xff0c;根本没有效果。 解决方案&#xff1a; 需要在对应的Canvas上绑定主相机才可以 鼠标移动到项目上就有信息展示了

使用Django创建项目及介绍

注意&#xff1a;创建项目之前先进入虚拟环境 第一步&#xff1a;创建 Django 项目 运行以下命令创建一个名为 myproject 的 Django 项目&#xff1a; django-admin startproject myproject 这会生成一个名为 myproject 的文件夹&#xff0c;结构如下&#xff1a; myproje…

CentOS 安装LAMP全过程 - 完整步骤与最佳实践

在开始搭建 LAMP 环境之前&#xff0c;需要确保系统已经满足以下条件&#xff1a; 1、操作系统&#xff1a;CentOS 7 或 CentOS 8 2、网络连接&#xff1a;系统必须能够访问互联网以下载所需的软件包 3、权限&#xff1a;需要 root 权限或者通过sudo 提权执行命令 先更新系…

Java基础关键_031_反射(一)

目 录 一、概述 二、获取 Class 的四种方式 1.Class.forName("完整全限定类名") 2.getClass() 3.class 属性 4.通过类加载器获取 三、通过反射机制实例化对象 1.newInstance()&#xff08;已过时&#xff09; 2.配置文件利用反射机制实例化对象 四、反射 Cla…

MySQL高级语句深度解析与应用实践

一、窗口函数&#xff1a;数据分析的利器 1. 窗口函数基础概念 窗口函数(Window Function)是MySQL 8.0引入的强大特性&#xff0c;它可以在不减少行数的情况下对数据进行聚合计算和分析 SELECT employee_name,department,salary,RANK() OVER (PARTITION BY department ORDER…

【机器学习基础 4】 Pandas库

一、Pandas库简介 Pandas 是一个开源的 Python 数据分析库&#xff0c;主要用于数据清洗、处理、探索与分析。其核心数据结构是 Series&#xff08;一维数据&#xff09;和 DataFrame&#xff08;二维表格数据&#xff09;&#xff0c;可以让我们高效地操作结构化数据。Pandas …

ETCD --- ​租约(Lease)​详解

一、租约的核心概念 1. ​租约(Lease)​ 一个租约是一个有时间限制的“授权”,绑定到键值对上。每个租约有一个唯一的ID(64位整数),通过etcdctl或客户端API创建。创建租约时需指定TTL(Time-To-Live),即租约的有效期(单位:秒)。客户端需定期向etcd发送续约(KeepAl…