码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • UE5 C++ 发射子弹发射(Projectile)


    一.相关蓝图的练习,在我之前的文章中射击子弹案例-CSDN博客

    本篇使用C++实现

    1.创建C++类 MyBullet,在MyBullet.h中包含相关头文件

    1. #include "CoreMinimal.h"
    2. #include "GameFramework/Actor.h"
    3. #include "Components/StaticMeshComponent.h" //模型组件
    4. //#include "Components/CapsuleComponent.h" //球形碰撞组件的头文件
    5. #include "GameFramework/ProjectileMovementComponent.h" //射击组件
    6. #include //球形碰撞组件的头文件
    7. #include "MyBullet.generated.h"


    2.声明属性变量,子弹模型,子弹碰撞体,子弹发射器

    1. public:
    2. UPROPERTY(VisibleAnywhere,BlueprintReadOnly,Category = "MyComponent")
    3. UStaticMeshComponent* BulletMesh; //static 组件
    4. UPROPERTY(VisibleAnywhere,BlueprintReadOnly,Category = "MyComponent")
    5. USphereComponent* MySphere; //碰撞组件
    6. UPROPERTY(VisibleAnywhere,BlueprintReadOnly,Category = "MyComponent")
    7. UProjectileMovementComponent* FireGunProjectile; //

    3.将组件实例化

    1. BulletMesh = CreateDefaultSubobject(TEXT("BulletComponent")); //实例化StaticMesh组件
    2. //RootComponent =
    3. FireGunProjectile = CreateDefaultSubobject(TEXT("FireGunProjectileComponent")); //实例化ProjectileMovement组件
    4. MySphere = CreateDefaultSubobject(TEXT("SphereCollision")); //

    4.通过寻找静态模型,设置静态模型的实例。设置根组件,设置父子级,只要Projectile在根组件后面就能,让物体跟随,就有发射根组件的效果。

    再设置参数,调整效果。发射的初始速度,最大速度,重力等。

    1. MySphere = CreateDefaultSubobject(TEXT("SphereCollision")); //
    2. static ConstructorHelpers::FObjectFinderTmpStaticMesh(TEXT("/Script/Engine.StaticMesh'/Engine/BasicShapes/Sphere.Sphere'")); //静态加载资源 重要
    3. BulletMesh->SetStaticMesh(TmpStaticMesh.Object); //.Object重要
    4. RootComponent = BulletMesh;
    5. //FireGunProjectile->setupattack
    6. MySphere->SetupAttachment(RootComponent);
    7. MySphere->InitSphereRadius(67);
    8. FireGunProjectile->SetUpdatedComponent(RootComponent);//
    9. FireGunProjectile->InitialSpeed = 1200.0f;//初始速度
    10. FireGunProjectile->MaxSpeed = 24000.0f; //最大速度
    11. FireGunProjectile->bRotationFollowsVelocity = false; //旋转跟随重力
    12. FireGunProjectile->bIsHomingProjectile = true; //跟随组件
    13. FireGunProjectile->ProjectileGravityScale = 0.02; //设置重力

    5.生成蓝图类放到场景中,这样就能实现单发的子弹效果

  • 相关阅读:
    Hangfire Pro 2022-08-31 update
    搜索引擎排名因素有哪些具体的细节?
    【七大排序算法】插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序
    为什么最近每份 Android 简历都说 “熟悉 MQTT 协议”?
    【力扣白嫖日记】601.体育馆的人流量
    FS4059B ESOP8 输入5V升压充电8.4V1.5A两串锂电池充电IC
    编译调试Net6源码
    Spring Boot与Web开发-快速开发CRUD
    Python + Django4 搭建个人博客(八):实现博文列表页面的视图函数和模板
    分享一个开发者和设计者的免费图标库
  • 原文地址:https://blog.csdn.net/m0_64217692/article/details/136320573
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号