01UEc++【打飞艇】
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++【打飞艇】相关推荐
- 黑科技揭秘:网红“天空物联网飞艇”服务范围为何能突破30公里
2018杭州云栖大会的网红飞艇,搭载LoRaWAN网关,与地面网关一起组成上天入地的天空物联网服务,获得众多关注.其最主要的核心是Link WAN物联网络管理平台,提供了网关管理与设备快数接入云端,使 ...
- 美宇航局下一个挑战项目:高科技飞艇
美宇航局下一个挑战项目:高科技飞艇 据国外媒体报道,最新军事新闻事件目前,美国宇航局开始挑战设计高科技飞艇,它将比当前飞艇飞行高度更高,且续航力更久.然而现在的飞艇仅能抵达海拔20公里高空,持续飞行8 ...
- 韩国公司KT将飞艇无人机与5G网络结合,用于搜救幸存者
内容来源:ATYUN AI平台 韩国电信公司KT公布了其5G应急网络服务Skyship,将该服务结合飞艇无人机在灾难发生后搜寻幸存者. KT与当地的无人机制造商Metismake合作设计了氦气飞艇,该 ...
- 加拿大太阳能飞艇将在非洲升天
加拿大太阳能公司Solar Ship与非洲航空货物运输服务公司Manaf Freighters建立了一个合资企业,将部署其新型太阳能混合动力飞艇,为边远地区提供关键物资,如食品.服装.医疗用品和基本必 ...
- 我们为什么喜欢看疯狂科学家开飞艇?
很多人可能不是科幻迷,也在日常生活中接触过蒸汽朋克.为什么呢?很简单--蒸汽朋克几乎无处不在. 相比其他科幻流派,蒸汽朋克可能算是最"出圈"的一种.简单地说,蒸汽朋克是一种科幻小说 ...
- 03UEc++【打飞艇:导弹与飞艇的碰撞事件】
1.同理导入导弹和大陆(都不导入骨骼) 2.点击大陆的网格体设置碰撞 3.然后把大地拖入游戏场景 ======================== 1.创建导弹类Missle和敌人类Enemy,都继承 ...
- 【07年特长生第四题】【DP】飞艇摆渡
飞艇摆渡飞艇摆渡飞艇摆渡 题目
- 《无人机DIY》——2.5 无线电控制飞艇
本节书摘来异步社区<无人机DIY>一书中的第2章,第2.5节,作者:[美]John Baichtal(约翰 贝克托),更多章节内容可以访问云栖社区"异步社区"公众号查看 ...
- 专注java分布式架构之Zeppelin不是飞艇
过去的一年多的时间中,大部分的工作都围绕着Zeppelin这个项目展开,经历了Zeppelin的从无到有,再到逐步完善稳定.见证了Zeppelin的成长的同时,Zeppelin也见证了我的积累进步.对 ...
最新文章
- dataimagepng php_nginx无法打开 dataimage/php
- 程序出错后,程序员给测试人员的20条高频回复
- 处理字符串_11_判断一个字符是否是数字
- Android实现连续并排的若干个TextView单击改变背景颜色达到选项卡Tab栏切换效果...
- 微软 azure_在Microsoft Azure上运行Eclipse MicroProfile
- odps新手上路之安装Eclipse开发环境
- MySQL 之 存储过程
- springMVC接收请求参数的几种方式
- 跑道防侵入,华为云ModelArts平台助力航空器识别AI模型开发
- [Ext JS 4] 实战之多选下拉单 (带checkbox)
- OpenCV之线性混合操作
- 【算法笔记】B1040 有几个PAT
- 前端代码更新镜像后,浏览器显示缓存
- Scratch编程入门
- apt user manul
- 网站 内容更新 监控 php,网站状态监控方法,使用PHP轻松监控你的网站运行状态...
- feedsky 话题 营销
- spring boot图书管理系统 毕业设计-附源码160934
- proxychans的使用
- python3中join和格式化的用法 ##16