UE5 C++ 发射子弹发射(Projectile)
一.相关蓝图的练习,在我之前的文章中射击子弹案例-CSDN博客
本篇使用C++实现
1.创建C++类 MyBullet,在MyBullet.h中包含相关头文件
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "Components/StaticMeshComponent.h" //模型组件
//#include "Components/CapsuleComponent.h" //球形碰撞组件的头文件
#include "GameFramework/ProjectileMovementComponent.h" //射击组件
#include <Components/SphereComponent.h> //球形碰撞组件的头文件
#include "MyBullet.generated.h"
2.声明属性变量,子弹模型,子弹碰撞体,子弹发射器
public:UPROPERTY(VisibleAnywhere,BlueprintReadOnly,Category = "MyComponent")UStaticMeshComponent* BulletMesh; //static 组件UPROPERTY(VisibleAnywhere,BlueprintReadOnly,Category = "MyComponent")USphereComponent* MySphere; //碰撞组件UPROPERTY(VisibleAnywhere,BlueprintReadOnly,Category = "MyComponent")UProjectileMovementComponent* FireGunProjectile; //
3.将组件实例化
BulletMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("BulletComponent")); //实例化StaticMesh组件
//RootComponent =
FireGunProjectile = CreateDefaultSubobject<UProjectileMovementComponent>(TEXT("FireGunProjectileComponent")); //实例化ProjectileMovement组件
MySphere = CreateDefaultSubobject<USphereComponent>(TEXT("SphereCollision")); //
4.通过寻找静态模型,设置静态模型的实例。设置根组件,设置父子级,只要Projectile在根组件后面就能,让物体跟随,就有发射根组件的效果。
再设置参数,调整效果。发射的初始速度,最大速度,重力等。
MySphere = CreateDefaultSubobject<USphereComponent>(TEXT("SphereCollision")); //
static ConstructorHelpers::FObjectFinder<UStaticMesh>TmpStaticMesh(TEXT("/Script/Engine.StaticMesh'/Engine/BasicShapes/Sphere.Sphere'")); //静态加载资源 重要
BulletMesh->SetStaticMesh(TmpStaticMesh.Object); //.Object重要RootComponent = BulletMesh;//FireGunProjectile->setupattack
MySphere->SetupAttachment(RootComponent);
MySphere->InitSphereRadius(67);
FireGunProjectile->SetUpdatedComponent(RootComponent);//
FireGunProjectile->InitialSpeed = 1200.0f;//初始速度
FireGunProjectile->MaxSpeed = 24000.0f; //最大速度
FireGunProjectile->bRotationFollowsVelocity = false; //旋转跟随重力
FireGunProjectile->bIsHomingProjectile = true; //跟随组件
FireGunProjectile->ProjectileGravityScale = 0.02; //设置重力
5.生成蓝图类放到场景中,这样就能实现单发的子弹效果


相关文章:
UE5 C++ 发射子弹发射(Projectile)
一.相关蓝图的练习,在我之前的文章中射击子弹案例-CSDN博客 本篇使用C实现 1.创建C类 MyBullet,在MyBullet.h中包含相关头文件 #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "Components/StaticMeshComponent.…...
【蓝牙协议栈】【蓝牙分析工具】Ellisys 分析HCI Log和btsnoop Log
1.Ellisys 介绍 Ellisys 的 air log sniffer设备要二三十万,一般不是专业开发蓝牙的估计不会选择使用这个工具,但是即使我们不买这个设备,安装了 Ellisys 的工具也可以看 btsnoop 的,下面我就一步一步教你通过 Ellisys 来打开 btsnoop。 1.1 首先打开 APP(Ellisys 不能直…...
亚信安慧AntDB数据库与流式处理的有机融合
流式处理的概念 2001年9月11日,美国世贸大楼被袭击,美国国防部第一次将“主动预警”纳入国防的宏观战略规划。而IBM作为当时全球最大的IT公司,承担了大量基础支撑软件研发的任务。其中2009年正式发布的IBM InfoSphere Streams,就是…...
神经网络系列---权重初始化方法
文章目录 权重初始化方法Xavier初始化(Xavier initialization)Kaiming初始化,也称为He初始化LeCun 初始化正态分布与均匀分布Orthogonal InitializationSparse Initializationn_in和n_out代码实现 权重初始化方法 Xavier初始化(X…...
【重要公告】BSV区块链协会宣布将启动多项动态安全增强措施
发表时间:2024年2月16日 2024年2月16日,瑞士楚格 - BSV区块链协议的管理机构BSV区块链协会(以下简称“BSV协会”)宣布对其运营模式实施全新的安全架构,其中包括引入网络访问规则和数字资产找回协议,以及…...
软件设计模式之访问者模式(Visitor Pattern)
访问者模式是一种行为型设计模式,它允许你定义一系列操作,这些操作可以应用于对象结构中的元素,而不改变这些元素的类。通过这种方式,可以在不改变各个元素的类的情况下,增加新的操作。 1. 何时使用访问者模式&#x…...
【MySQL】主从同步原理、分库分表
主从同步原理 1. 主从同步原理 MySQL 经常先把命令拷入硬盘的日志,再执行日志的命令,这样的好处: 日志的位置固定,拷入硬盘的开销不大;将命令先准备好,而不是边读边执行,性能更好,…...
uniapp如何实现关闭前面指定数目页面
需求 : 路由从 页面A -> 页面B-> 页面C-> 页面D 我希望在 页面C跳到页面CD 后 在页面D 中 点击返回(物理键或是代码返回),直接返回到A,而不是页面C 所以我需要把BC页面给销毁掉 以下是我的实现思路,在h…...
使用 Helm 安装 极狐GitLab
本篇作者 徐晓伟 使用 Helm 简便快捷的部署与管理 极狐GitLab 前提条件 k8s 完成 helm 的配置 k8s 完成 ingress 的配置 内存至少 10G 演示环境是 龙蜥 Anolis 8.4(即:CentOS 8.4)最小化安装k8s 版本 1.28.2calico 版本 3.26.1nginx ingre…...
K8S部署postgresql
(作者:陈玓玏) 一、前置条件 已部署k8s,服务端版本为1.21.14 二、部署postgresql 拉取镜像,docker pull postgres,不指定版本,自动从docker hub拉取最新版本;配置configmap&…...
Go 如何控制并发的goroutine数量?
为什么要控制goroutine并发的数量? 在开发过程中,如果不对goroutine加以控制而进行滥用的话,可能会导致服务整体崩溃。比如耗尽系统资源导致程序崩溃,或者CPU使用率过高导致系统忙不过来。 用什么方法控制goroutine并发的数量&a…...
【黑马程序员】1、TypeScript介绍_黑马程序员前端TypeScript教程,TypeScript零基础入门到实战全套教程
课程地址:【黑马程序员前端TypeScript教程,TypeScript零基础入门到实战全套教程】 https://www.bilibili.com/video/BV14Z4y1u7pi/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 目录 1、TypeScript介绍 1.1 TypeScript是什…...
JS进阶——深入对象
构造函数 封装是面向对象思想中比较重要的一部分,js面向对象可以通过构造函数实现的封装。 前面我们学过的构造函数方法很好用,但是 存在浪费内存的问题 原型 目标:能够利用原型对象实现方法共享 构造函数通过原型分配的函数是所有对象所…...
Gitlab部署管理
一、安装 1.docker安装gitlab sudo docker run -d \-p 6080:80 -p 6022:22 \--name gitlab \--restart always \-v /srv/gitlab/config:/etc/gitlab \-v /srv/gitlab/logs:/var/log/gitlab \-v /srv/gitlab/data:/var/opt/gitlab \gitlab/gitlab-ce:latest2.存储说明 存储应…...
MyBatis 学习(二)之 第一个 MyBatis 案例
目录 1 配置 MyBatis 方式 1.1 XML 配置文件 1.2 Java 注解配置 1.3. Java API 配置 2 在 MySQL 中创建一张表 3 创建一个基于 Maven 的 JavaWeb 工程 4 编写 User 实体类 5 创建 Mybatis 全局配置文件 6 编写一个 DAO 或 Mapper 接口 7 编写 SQL 映射配置文件&#…...
30天自制操作系统(第21天)
21.1 攻克难题——字符串显示API 显示单个字符时,用 [CS:ECX] 的方式特意指定了 CS(代码段寄存器),因此可以成功读取 msg的内容。但在显示字符串时,由于无法指定段地址,程序误以为是 DS而从完全错误的内存地…...
linux系统Jenkins的安装
Jenkins安装 安装上传安装包解压包首次登录要去服务器查看密码,更改密码选择需要安装的插件设置Admin用户和密码安装完成 安装 上传安装包 上传 jdk17 tomcat jenkins.war的安装包 . 上传 tomcat安装包解压包 解压jdk tar xf jdk-11.0.18_linux-x64_bin.tar.gz解…...
【GStreamer】basic-tutorial-1:GstBus、GstMessage详解
【目录】郭老二博文之:图像视频汇总 1、先看示例 #include <gst/gst.h>int main (int argc, char *argv[]) {GstElement *pipeline;GstBus...
Python中的可变变量与不可变变量
python中的可变与不可变变量 一、变量的三个参数 就像区分一个人一样,同样都是张三,可能这个张三就不是那个张三。同一个变量是指的什么相同呢? Python中的对象包含三个要素,id(内存地址),typ…...
OpenGL调用窗口,方向键和鼠标
9.2 OpenGL调用窗口,方向键和鼠标 9.2.1 opengl调用窗口 OpenGL调用窗口步骤: 第一步:初始化 GLFW,初始化OpenGL,初始化窗口,初始化上下文 第二步:设置窗口大小和位置,设置输入输出 第三步…...
某宝登录密码加密逆向实战——从password2到st码的完整流程解析
1. 淘宝登录加密机制概述 淘宝作为国内最大的电商平台,其登录系统采用了多重安全防护措施。其中password2参数是整个登录流程中最关键的加密环节,它通过RSA算法对用户明文密码进行非对称加密。这种设计能有效防止密码在传输过程中被截获,即使…...
AISQL生成不是噱头,是生产力革命:37个真实生产环境SQL生成失败案例全复盘
第一章:AISQL生成不是噱头,是生产力革命:37个真实生产环境SQL生成失败案例全复盘 2026奇点智能技术大会(https://ml-summit.org) 在金融、电商与SaaS平台的37个线上生产系统中,我们对主流AISQL工具(含LangChainLlama…...
2026 最新 从零搭建本地大模型 RAG 知识库问答系统:基于 Llama 3.2 8B 量化版 + LangChain+Chroma,全流程代码实操 + 踩坑指南
2026最新 从零搭建本地大模型RAG知识库问答系统:基于Llama 3.2 8B量化版LangChainChroma,全流程代码实操踩坑指南 【本文首发CSDN,未经授权禁止转载】 文章目录 文章目录2026最新 从零搭建本地大模型RAG知识库问答系统:基于Llam…...
Elasticsearch实战篇:索引库、文档与JavaRestClient操作指南
Elasticsearch 实战篇:索引库、文档与 JavaRestClient 操作指南整理自黑马程序员《SpringCloud微服务开发与实战》Elasticsearch01 课程 对应章节:索引库操作、文档操作、JavaRestClient 客户端一、索引库操作 (Index Operations) 索引库类似于 MySQL 中…...
【51单片机实战】智能倒车雷达系统:从超声波测距到分级报警的完整实现
1. 项目背景与核心功能 倒车雷达是汽车电子中非常实用的安全装置,对于电子工程专业的学生来说,用51单片机实现一个简易版的倒车防撞系统是个不错的练手项目。这个系统主要利用超声波测距原理,通过LED灯和蜂鸣器实现分级报警,还能保…...
Security:Elastic Security 实战:从零构建威胁检测与响应闭环
1. Elastic Security 初探:企业安全防护新思路 第一次接触Elastic Security时,我被它"SIEM端点防护"的二合一设计惊艳到了。传统企业安全方案往往需要采购多个独立系统,而Elastic Security直接把日志分析、威胁检测、终端防护这些功…...
别再只改单元格了!PyQt5 QTableWidget表头(horizontalHeader/verticalHeader)的5个实用技巧与避坑指南
PyQt5 QTableWidget表头深度优化:5个实战技巧与性能陷阱解析 在开发数据密集型桌面应用时,表格控件往往是核心交互组件。虽然大多数PyQt5开发者都能熟练操作单元格内容,但表头(horizontalHeader/verticalHeader)的高级功能却经常被忽视。实际…...
从 0 到 1 用 Python 写一个最小可用 LangGraph 系统
从 0 到 1 用 Python 写一个最小可用 LangGraph 系统 关键词 LangGraph, LangChain, 状态机, 多Agent系统, 图结构, LLM应用, Python实现 摘要 在这篇技术博客中,我们将深入探讨LangGraph的核心概念,并从零开始构建一个最小可用的LangGraph系统。LangGraph是LangChain生态…...
如何在 Pandas 中安全地对非空 DataFrame 执行行级操作
本文详解如何在 Pandas 中判断 DataFrame 是否为空,并在行级处理(如 apply 或迭代)中避免对空数据执行无效操作,重点推荐 iterrows() 空值前置校验的稳健方案。 本文详解如何在 pandas 中判断 dataframe 是否为空,并在…...
Windows更新故障的终极解决方案:Reset Windows Update Tool深度技术解析
Windows更新故障的终极解决方案:Reset Windows Update Tool深度技术解析 【免费下载链接】Reset-Windows-Update-Tool Troubleshooting Tool with Windows Updates (Developed in Dev-C). 项目地址: https://gitcode.com/gh_mirrors/re/Reset-Windows-Update-Tool…...
