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,初始化窗口,初始化上下文 第二步:设置窗口大小和位置,设置输入输出 第三步…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...
Spring Security 认证流程——补充
一、认证流程概述 Spring Security 的认证流程基于 过滤器链(Filter Chain),核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤: 用户提交登录请求拦…...
