UE4学习笔记 FPS游戏制作17 让机器人持枪 销毁机器人时也销毁机器人的枪 让机器人射击
添加武器插槽
打开机器人的Idle动画,方便查看武器位置
在动画面板里打开骨骼树,找到右手的武器节点,右键添加一个插槽,重命名为RightWeapon,右键插槽,添加一个预览资产,选择Rifle,根据Rigfle的角度调整插槽的角度

生成武器
将FppShooter事件图表里,开始时生成新枪的代码复制到RobotShooter里,但是我们只保留生成步枪的部分

这样子机器人就有枪了
销毁武器
由于武器是一个Actor,不会跟随角色的销毁自动销毁,所以销毁角色时要显式的销毁所持有的武器
在Shooter的事件图表里添加如下节点

调用射击
为了简单起见,我们让机器人一直开枪
在RobotShooter里,新建一个函数AlwaysShoot

打开机器人的控制类RobotController
新建一个纯函数GetRobotShooter,返回值为RobotShooter的引用

打开RobotController的事件图表,新增如下节点,调用射击方法,Delay节点的值是0,表示下一帧执行,因为AlwaysShoot内GetCurrentGun方法需要获取当前使用的武器,但是武器是在RobotShooter的Begin事件里执行的,和这里为同一时机,如果同时调用,会导致获取到的Gun引用为空

相关文章:
UE4学习笔记 FPS游戏制作17 让机器人持枪 销毁机器人时也销毁机器人的枪 让机器人射击
添加武器插槽 打开机器人的Idle动画,方便查看武器位置 在动画面板里打开骨骼树,找到右手的武器节点,右键添加一个插槽,重命名为RightWeapon,右键插槽,添加一个预览资产,选择Rifle,根…...
考研408-数据结构完整代码 线性表的链式存储结构 - 单链表
单链表操作详解(C实现) 目录 单链表尾插法创建单链表头插法创建删除指定节点按值查找按序号查找插入节点完整代码示例注意事项总结 尾插法创建 #include<bits/stdc.h> using namespace std;typedef struct LNode {int data;struct LNode* next;…...
蓝桥杯经典题解:班级活动分组问题的深度解析与优化实现
目录 一、问题背景与描述 二、问题分析与核心思路 2.1 问题本质:统计与配对优化 2.2 关键观察 2.3 数学建模 三、算法设计与实现步骤 3.1 算法步骤 3.2 代码实现(Python) 3.3 优化点分析 四、关键细节与常见误区 4.1 细节处理 4.…...
设计模式(创建型)-建造者模式
定义 建造者模式(Builder Pattern)是一种创建型设计模式,它将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。该模式允许通过多个简单的步骤逐步构建出一个复杂的对象,用户只需指定复杂对象…...
RIP和OSPF的区别
文章目录 RIP(路由信息协议)和 OSPF(开放最短路径优先)是两种常见的动态路由协议,它们的主要区别如下:1. 协议类型2. 更新方式3. 路由计算算法4. 最大跳数5. 管理距离(AD)6. 认证机制…...
Git 之配置ssh
1、打开 Git Bash 终端 2、设置用户名 git config --global user.name tom3、生成公钥 ssh-keygen -t rsa4、查看公钥 cat ~/.ssh/id_rsa.pub5、将查看到的公钥添加到不同Git平台 6、验证ssh远程连接git仓库 ssh -T gitgitee.com ssh -T gitcodeup.aliyun.com...
遍历数组时,如何获取数组每个元素索引号
在 JavaScript 中,有多种方法可以在遍历数组时获取每个元素的索引号,下面为你介绍几种常用的方法: 1. 使用 for 循环 const array [apple, banana, cherry]; for (let i 0; i < array.length; i) {console.log(索引 ${i} 的元素是: ${…...
黑马点评项目
遇到问题: 登录流程 session->JWT->SpringSession->tokenRedis (不需要改进为SpringSession,token更广泛,移动端或者前后端分离都可以用) SpringSession配置为redis模式后,redis相当于分布式se…...
如何防御TCP洪泛攻击
TCP洪泛攻击(TCP Flood Attack)是一种常见的分布式拒绝服务(DDoS)攻击手段,以下是其原理、攻击方式和危害的详细介绍: 定义与原理 TCP洪泛攻击利用了TCP协议的三次握手过程。在正常的TCP连接建立过程中&a…...
【AVRCP】AVRCP核心术语解析
目录 一、协议核心术语:架构的基石 1.1 音视频控制协议簇(AVRCP 生态链) 1.2 数据传输协议(L2CAP 核心术语) 二、设备架构术语:角色与交互 2.1 设备角色模型(CT/TG 二元架构) …...
【弹性计算】异构计算云服务和 AI 加速器(四):FPGA 虚拟化技术
异构计算云服务和 AI 加速器(四):FPGA 虚拟化技术 🚀 FPGA(Field-Programmable Gate Array,现场可编程门阵列)是一种可重构的半导体芯片,允许用户根据需要动态配置硬件逻辑ÿ…...
Python爬虫如何检测请求频率?
在进行网络爬虫开发时,合理设置请求频率是确保爬虫稳定运行、避免被目标网站封禁的关键策略之一。以下是一些有效的方法和最佳实践,帮助你合理设置请求频率,确保爬虫的可持续性和稳定性。 一、了解速度限制的原因 网站对爬虫速度进行限制的…...
编译原理——自底向上语法优先分析
文章目录 自底向上优先分析概述一、自底向上优先分析概述二、简单优先分析法(一)优先关系定义(二)简单优先文法的定义(三)简单优先分析法的操作步骤 三、算法优先分析法(一)直观算符…...
nuxt3网站文章分享微信 ,QQ功能
1.安装 npm install qrcode --save-dev 2.组件使用 <div class"share"><div style"line-height: 69px; color: #fff;width: 100px;"><p style"text-align: center;">分享:</p></div><div click"shareToMi…...
智能任务分配:Python高并发架构设计
Python并发编程实战:多进程与多线程的智能任务分配策略 引言:突破性能瓶颈的关键选择 在CPU核心数量激增和I/O密集型应用普及的今天,Python开发者面临着一个关键抉择:如何通过并发编程充分释放硬件潜力?本文通过实测数…...
Oracle 数据库通过exp/imp工具迁移指定数据表
项目需求:从prod数据库迁移和复制2个表(BANK_STATE,HBS)的数据到uat数据库环境。 数据库版本:Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 迁移工具:客户端exp/imp工具 -- 执行命令 从Prod数据库导出数据exp us…...
批发订货系统:驱动企业数字化转型的核心引擎
在数字经济时代,传统批发企业正面临供应链效率低、客户体验不足、管理成本高等挑战。而批发订货系统作为企业数字化转型的重要工具,正通过智能化、数据化和流程重构,重塑企业的运营模式,助力企业实现降本增效与业务创新。以下从多…...
STM32F103_LL库+寄存器学习笔记07 - 串口接收缓冲区非空中断
导言 上一章节《STM32F103_LL库寄存器学习笔记06 - 梳理串口与串行发送“Hello,World"》梳理完USART的基本设置与发送字符串“Hello,World",接着梳理接收缓冲区非空中断。 实用的串口接收程序都会使用中断方式,不会使用轮询方式。最主要的原因…...
python将整个txt文件写入excel的一个单元格?
要将整个txt文件写入Excel的一个单元格,可以使用Python的openpyxl库来实现。以下是一个简单的示例代码: from openpyxl import Workbook# 读取txt文件内容 with open(file.txt, r) as file:txt_content file.read()# 创建一个新的Excel工作簿 wb Work…...
CentOS 8 Stream 配置在线yum源参考 —— 筑梦之路
CentOS 8 Stream ISO 文件下载地址:http://mirrors.aliyun.com/centos-vault/8-stream/isos/x86_64/CentOS-Stream-8-20240603.0-x86_64-dvd1.isoCentOS 8 Stream 网络引导ISO 文件下载地址:http://mirrors.aliyun.com/centos-vault/8-stream/isos/x86_6…...
生物中心论
Robert Lanza的“生物中心论”(Biocentrism)是一种以生命和意识为核心的宇宙观,试图颠覆传统科学对时间、空间和物质的理解。 一、核心观点 意识创造宇宙 生物中心论认为,宇宙的存在依赖于观察者的意识。传统科学将宇宙视为独立实…...
LeetCode //C - 650. 2 Keys Keyboard
650. 2 Keys Keyboard There is only one character ‘A’ on the screen of a notepad. You can perform one of two operations on this notepad for each step: Copy All: You can copy all the characters present on the screen (a partial copy is not allowed).Paste:…...
【leetcode hot 100 347】前 K 个高频元素
解法一:用map的value记录key出现的次数,用PriorityQueue构造最小堆。 class Solution {public int[] topKFrequent(int[] nums, int k) {// 把元素放在map中Map<Integer,Integer> map new HashMap<>();for(int num:nums){if(map.containsK…...
Spring三级缓存解决循环依赖的深度解析
一、循环依赖场景 假设存在两个Bean的相互依赖: Component public class ServiceA {Autowiredprivate ServiceB serviceB; }Component public class ServiceB {Autowiredprivate ServiceA serviceA; }二、三级缓存定义 在 DefaultSingletonBeanRegistry 中定义&a…...
Spring AOP:面向切面编程的探索之旅
目录 1. AOP 2. Spring AOP 快速入门 2.1 引入 Spring AOP 依赖 2.2 Spring AOP 简单使用 3. Spring AOP 核心概念 3.1 切点 3.1.1 Pointcut 定义切点 3.1.2 切点表达式 3.1.2.1 execution 表达式 3.1.2.2 annotation 表达式 3.2 连接点 3.3 通知(Advice) 3.3.1 通…...
使用QT画带有透明效果的图
分辨率:24X24 最大圆 代码: #include <QApplication> #include <QImage> #include <QPainter>int main(int argc, char *argv[]) {QImage image(QSize(24,24),QImage::Format_ARGB32);image.fill(QColor(0,0,0,0));QPainter paint(&image);…...
RocketMQ可视化工具使用 - Dashboard(保姆级教程)
1、github拉取代码,地址: https://github.com/apache/rocketmq-dashboard 2、指定Program arguments,本地启动工程 勾上这个Program arguments,会出现多一个对应的框 写入参数 --server.port1280 --rocketmq.config.namesrvAddr…...
用Unity实现UDP客户端同步通信
制作UDPNetMgr网络管理模块 这段代码定义了一个名为UDPNetMgr的 Unity 脚本类,用于管理 UDP 网络通信,它作为单例存在,在Awake方法中创建收发消息的线程,Update方法处理接收到的消息;StartClient方法启动客户端连接&a…...
pandoc安装及基础使用
pandoc安装 访问pandoc tags,切换至想要安装的版本,本次安装3.6.4 下载windows版本 下载texlive镜像,将文件转换成pdf需要用到 点开后会进入最近的镜像网站 下载完成后解压iso文件,以管理员身份运行install-tl-windows.batÿ…...
C++:无序关联容器
遇到的问题,都有解决方案,希望我的博客能为您提供一点帮助。 一、无序关联容器概述 无序关联容器(如 unordered_set、unordered_map、unordered_multiset、unordered_multimap)基于 哈希表(Hash Table)…...
