1.创建一个空的c++项目

 2.添加飞行器类,继承于pwan


3.添加静态组件

 UPROPERTY(VisibleAnywhere)class UStaticMeshComponent* Mesh;

4.在源文件中初始化

#include "Components/StaticMeshComponent.h"
Mesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Mesh"));
RootComponent = Mesh;

5.创建飞行器的模型

6. 此时导入无人机模型

点击导入

7.打开无人机蓝图,选择无人机模型

8.导入螺旋桨模型

9.为无人机的网格体添加四个插槽,装螺旋桨

10.添加插槽

11.关掉吸附功能,比较好操作

12.在顶视图设置位置

13.切换到前视图,继续调整位置

14.依次添加三个插槽

 15.在c++的无人机类里面,为螺旋桨添加四个静态网格体变量

 //螺旋桨UPROPERTY(VisibleAnywhere)UStaticMeshComponent* Paddle1;UPROPERTY(VisibleAnywhere)UStaticMeshComponent* Paddle2;UPROPERTY(VisibleAnywhere)UStaticMeshComponent* Paddle3;UPROPERTY(VisibleAnywhere)UStaticMeshComponent* Paddle4;

16.在源文件里初始化

 //生成螺旋桨组件Paddle1 = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Paddle1"));Paddle2 = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Paddle2"));Paddle3 = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Paddle3"));Paddle4 = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Paddle4"));//绑定根组件,设置插槽位置Paddle1->SetupAttachment(Mesh, TEXT("Paddle1"));Paddle2->SetupAttachment(Mesh, TEXT("Paddle2"));Paddle3->SetupAttachment(Mesh, TEXT("Paddle3"));Paddle4->SetupAttachment(Mesh, TEXT("Paddle4"));

17.在无人机蓝图里设置螺旋桨

 18.为了无人机添加碰撞盒子,在头文件里声明变量

 //碰撞盒子UPROPERTY(VisibleAnywhere)class UBoxComponent* OutCollision;

19.在构造函数中,进行初始化设置

 //碰撞盒子,并设为根组件OutCollision = CreateDefaultSubobject<UBoxComponent>(TEXT("BoxComponent"));//设为根组件RootComponent = OutCollision;//设置大小OutCollision->SetBoxExtent(FVector(100.0f, 100.0f, 100.0f));//激活物理特性OutCollision->SetSimulatePhysics(true);//不希望盒子一直是水平的OutCollision->BodyInstance.bLockXRotation = true;OutCollision->BodyInstance.bLockYRotation = true;//机身组件Mesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Mesh"));//绑定到根组件Mesh->SetupAttachment(RootComponent);

20.编译,然后打开蓝图

21.修改盒体形状,移动无人机位置

22.碰撞预设设为pwan

23.设置质量

24. 现在计算一下无人机的重量,重力加速度是-9.8,质量是1kg,重量是其乘积

25.在头文件中增加向前和向上的推进器组件

 //向上推进器组件UPROPERTY(VisibleAnywhere)class UPhysicsThrusterComponent* UpThruster;//向前推进器组件UPROPERTY(VisibleAnywhere)class UPhysicsThrusterComponent* ForwardThruster;

26.在源文件中引入头文件

#include "PhysicsEngine/PhysicsThrusterComponent.h"
#include "Kismet/KismetMathLibrary.h"

27.在构造函数中初始设置

 UpThruster = CreateDefaultSubobject<UPhysicsThrusterComponent>(TEXT("UpThruster"));UpThruster->SetupAttachment(RootComponent);UpThruster->ThrustStrength =  980.0f;UpThruster->SetAutoActivate(true);//x轴指向无人机下方UpThruster->SetWorldRotation(UKismetMathLibrary::MakeRotFromX(-this->GetActorUpVector()));ForwardThruster = CreateDefaultSubobject<UPhysicsThrusterComponent>(TEXT("ForwardThruster"));ForwardThruster->SetupAttachment(RootComponent);ForwardThruster->ThrustStrength = 0.0f;ForwardThruster->SetAutoActivate(true);//用法同上ForwardThruster->SetWorldRotation(UKismetMathLibrary::MakeRotFromX(-this->GetActorForwardVector()));

28.增加无人机的空气阻力

01UEc++【打飞艇】相关推荐

  1. 黑科技揭秘:网红“天空物联网飞艇”服务范围为何能突破30公里

    2018杭州云栖大会的网红飞艇,搭载LoRaWAN网关,与地面网关一起组成上天入地的天空物联网服务,获得众多关注.其最主要的核心是Link WAN物联网络管理平台,提供了网关管理与设备快数接入云端,使 ...

  2. 美宇航局下一个挑战项目:高科技飞艇

    美宇航局下一个挑战项目:高科技飞艇 据国外媒体报道,最新军事新闻事件目前,美国宇航局开始挑战设计高科技飞艇,它将比当前飞艇飞行高度更高,且续航力更久.然而现在的飞艇仅能抵达海拔20公里高空,持续飞行8 ...

  3. 韩国公司KT将飞艇无人机与5G网络结合,用于搜救幸存者

    内容来源:ATYUN AI平台 韩国电信公司KT公布了其5G应急网络服务Skyship,将该服务结合飞艇无人机在灾难发生后搜寻幸存者. KT与当地的无人机制造商Metismake合作设计了氦气飞艇,该 ...

  4. 加拿大太阳能飞艇将在非洲升天

    加拿大太阳能公司Solar Ship与非洲航空货物运输服务公司Manaf Freighters建立了一个合资企业,将部署其新型太阳能混合动力飞艇,为边远地区提供关键物资,如食品.服装.医疗用品和基本必 ...

  5. 我们为什么喜欢看疯狂科学家开飞艇?

    很多人可能不是科幻迷,也在日常生活中接触过蒸汽朋克.为什么呢?很简单--蒸汽朋克几乎无处不在. 相比其他科幻流派,蒸汽朋克可能算是最"出圈"的一种.简单地说,蒸汽朋克是一种科幻小说 ...

  6. 03UEc++【打飞艇:导弹与飞艇的碰撞事件】

    1.同理导入导弹和大陆(都不导入骨骼) 2.点击大陆的网格体设置碰撞 3.然后把大地拖入游戏场景 ======================== 1.创建导弹类Missle和敌人类Enemy,都继承 ...

  7. 【07年特长生第四题】【DP】飞艇摆渡

    飞艇摆渡飞艇摆渡飞艇摆渡 题目

  8. 《无人机DIY》——2.5 无线电控制飞艇

    本节书摘来异步社区<无人机DIY>一书中的第2章,第2.5节,作者:[美]John Baichtal(约翰 贝克托),更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  9. 专注java分布式架构之Zeppelin不是飞艇

    过去的一年多的时间中,大部分的工作都围绕着Zeppelin这个项目展开,经历了Zeppelin的从无到有,再到逐步完善稳定.见证了Zeppelin的成长的同时,Zeppelin也见证了我的积累进步.对 ...

最新文章

  1. dataimagepng php_nginx无法打开 dataimage/php
  2. 程序出错后,程序员给测试人员的20条高频回复
  3. 处理字符串_11_判断一个字符是否是数字
  4. Android实现连续并排的若干个TextView单击改变背景颜色达到选项卡Tab栏切换效果...
  5. 微软 azure_在Microsoft Azure上运行Eclipse MicroProfile
  6. odps新手上路之安装Eclipse开发环境
  7. MySQL 之 存储过程
  8. springMVC接收请求参数的几种方式
  9. 跑道防侵入,华为云ModelArts平台助力航空器识别AI模型开发
  10. [Ext JS 4] 实战之多选下拉单 (带checkbox)
  11. OpenCV之线性混合操作
  12. 【算法笔记】B1040 有几个PAT
  13. 前端代码更新镜像后,浏览器显示缓存
  14. Scratch编程入门
  15. apt user manul
  16. 网站 内容更新 监控 php,网站状态监控方法,使用PHP轻松监控你的网站运行状态...
  17. feedsky 话题 营销
  18. spring boot图书管理系统 毕业设计-附源码160934
  19. proxychans的使用
  20. python3中join和格式化的用法 ##16

热门文章

  1. 内网安全-记一次内网靶机渗透
  2. 百趣代谢组学资讯:代谢流与脂质组手段探究肝癌细胞抗放疗真相
  3. PHP中间件是什么?
  4. EDA技术的发展与应用 外文翻译
  5. 多层多路径子文件夹批量解压压缩包到指定目录(以B2Z格式压缩包为例)
  6. 多商户商城系统哪家好?
  7. 速知!PMI-ACP认证是什么?
  8. 「后台列表页设计原则和技巧」
  9. 虚拟机中使用OpenGL遇到的错误总结
  10. EZEMC测试软件_EMC电磁兼容测试