【UE4 C++】抛物线路径、发射轨道相关
基于UGameplayStatics
Blueprint_PredictProjectilePath_ByObjectType
根据 Object Type,算出抛物线的点集合和检测结果
static bool Blueprint_PredictProjectilePath_ByObjectType(
const UObject* WorldContextObject,
FHitResult& OutHit,
TArray<FVector>& OutPathPositions,
FVector& OutLastTraceDestination,
FVector StartPos,
FVector LaunchVelocity,
bool bTracePath,
float ProjectileRadius,
const TArray<TEnumAsByte<EObjectTypeQuery> >& ObjectTypes,
bool bTraceComplex,
const TArray<AActor*>& ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
float DrawDebugTime,
float SimFrequency = 15.f,
float MaxSimTime = 2.f,
float OverrideGravityZ = 0
);
代码实现
FVector BeginLoc = GetActorLocation();
FVector LaunchVelocity = GetActorForwardVector() * 1000.0f;
TArray<TEnumAsByte<EObjectTypeQuery> > ObjectTypes;
ObjectTypes.Add(EObjectTypeQuery::ObjectTypeQuery1);
TArray<AActor*> IgnoreActors; FHitResult HitResult;
TArray<FVector> OutPatnPositions;
FVector OutLastTraceDestination; //开始模拟
bool bIsHit = UGameplayStatics::Blueprint_PredictProjectilePath_ByObjectType(
GetWorld(),
HitResult,
OutPatnPositions,
OutLastTraceDestination,
BeginLoc,
LaunchVelocity,
true,
0.0f,
ObjectTypes,
false,
IgnoreActors,
EDrawDebugTrace::ForDuration,
0.0f
);
if (bIsHit)
{
UKismetSystemLibrary::PrintString(GetWorld(), HitResult.GetActor()->GetName());
}
Blueprint_PredictProjectilePath_ByTraceChannel
根据 ChannelChannel,算出抛物线的点集合和检测结果
static bool Blueprint_PredictProjectilePath_ByTraceChannel(
const UObject* WorldContextObject,
FHitResult& OutHit,
TArray<FVector>& OutPathPositions,
FVector& OutLastTraceDestination,
FVector StartPos,
FVector LaunchVelocity,
bool bTracePath,
float ProjectileRadius,
TEnumAsByte<ECollisionChannel> TraceChannel,
bool bTraceComplex,
const TArray<AActor*>& ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
float DrawDebugTime,
float SimFrequency = 15.f,
float MaxSimTime = 2.f,
float OverrideGravityZ = 0
);
PredictProjectilePath
根据预测参数,推算结果
/**
* Predict the arc of a virtual projectile affected by gravity with collision checks along the arc.
* Returns true if it hit something.
*
* @param PredictParams Input params to the trace (start location, velocity, time to simulate, etc).
* @param PredictResult Output result of the trace (Hit result, array of location/velocity/times for each trace step, etc).
* @return True if hit something along the path (if tracing with collision).
*/ static bool PredictProjectilePath(
const UObject* WorldContextObject,
const FPredictProjectilePathParams& PredictParams,
FPredictProjectilePathResult& PredictResult
);
Blueprint_PredictProjectilePath_Advanced
根据预测参数,推算结果
static bool Blueprint_PredictProjectilePath_Advanced(
const UObject* WorldContextObject,
const FPredictProjectilePathParams& PredictParams,
FPredictProjectilePathResult& PredictResult
);
BlueprintSuggestProjectileVelocity
根据目标点,反算初速度
static bool BlueprintSuggestProjectileVelocity(
const UObject* WorldContextObject,
FVector& TossVelocity,
FVector StartLocation,
FVector EndLocation,
float LaunchSpeed,
float OverrideGravityZ,
ESuggestProjVelocityTraceOption::Type TraceOption,
float CollisionRadius,
bool bFavorHighArc,
bool bDrawDebug
);
SuggestProjectileVelocity_CustomArc
根据目标点,反算初速度
static bool SuggestProjectileVelocity_CustomArc(
const UObject* WorldContextObject,
FVector& OutLaunchVelocity,
FVector StartPos,
FVector EndPos,
float OverrideGravityZ = 0,
float ArcParam = 0.5f
);
【UE4 C++】抛物线路径、发射轨道相关的更多相关文章
- /etc/profile 路径出错后相关的命令失效解决方式
关于 Linux 的配置文件 /etc/profile 路径出错后相关的命令失效解决方式(如:ls,vi不能用) 今天学习LINUX 下配置jdk 和安装tomcat 通过VI编辑/etc/profi ...
- UE4 Android相对路径转绝对路径方法笔记
在windows端用FPaths::ConvertRelativePathToFull可以将相对路径转成绝对路径. 在Andoird端,就麻烦些.可模仿UE4源码中AndroidFile.Cpp转换相 ...
- 卫星轨道相关笔记SGP4
由卫星历书确定卫星轨道状态向量 卫星历书的表示方法有2种: TLE(Two Line Element),和轨道根数表示方法 由卫星历书计算出卫星轨道状态向量的方法有2种: SGP方法,NORAD的方法 ...
- 11g直接路径读、相关参数、10949事件介绍
转载自刘向兵老师:http://www.askmaclean.com/archives/11g-direct-path-read-10949-_small_table_threshold-_seria ...
- PHP中文件类型 文件属性 路径以及 文件相关的函数
一: 文件类型判断: 1.is_dir() 判断是不是目录 2.is_file() 判断是不是文件 3.is_executable() 判断是不是可执行文件 4.is_readable() 判断是 ...
- .md图片链接转存并替换路径,及相关报错解决方法
最初我想把Typora中.md文件中的web图片链接都下载保存到本地,并且替换.md文本中的路径 说干就干,因为在网上没有找到现成的程序所以自己写了这个程序 思路是循环查找文件夹中的文件,然后yiel ...
- 【UE4 C++】学习笔记汇总
UE4 概念知识 基础概念--文件结构.类型.反射.编译.接口.垃圾回收.序列化[导图] GamePlay架构[导图] 类的继承层级关系[导图] 反射机制 垃圾回收机制/算法 序列化 Actor 的生 ...
- Android 利用二次贝塞尔曲线模仿购物车加入物品抛物线动画
Android 利用二次贝塞尔曲线模仿购物车加入物品抛物线动画 0.首先.先给出一张效果gif图. 1.贝塞尔曲线原理及相关公式參考:http://www.jianshu.com/p/c0d7ad79 ...
- SVG的路径动画效果
使用SVG animateMotion实现的一个动画路径效果,相关代码如下. 在线调试唯一地址:http://www.gbtags.com/gb/debug/c88f4099-5056-4ad7-af ...
随机推荐
- Java基础(一)——面向对象
一.对象 1.成员变量和局部变量的区别 两类变量同名时,局部变量具有更高的优先级. 作用域不同:局部变量的作用域仅限于定义它的方法,作用于函数或者语句中:成员变量的作用域在整个类中. 初始值不同:Ja ...
- Java中使用DOM4J来生成xml文件和解析xml文件
一.前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理 ...
- noip模拟29
这次终于是早上考试了 早上考试手感不错,这次刷新了以前的最高排名- %%%cyh巨佬 \(rk1\) %%%CT巨佬 \(t2\) 90 纵观前几,似乎我 \(t3\) 是最低的-- 总计挂分10分, ...
- RDS导入注意事项
1)导入文件大小不超过100M,支持格式有CSV.SQL.ZIP 2)sql文件需注释如下内容: SET @@SESSION.SQL_LOG_BIN=0 ; SET @@GLOBAL.GTID_PUR ...
- Delphi使用AcroPDF ActiveX显示PDF文件
效果展示 调用方式 放入窗体即可使用,不想安装太多组件,可使用纯代码方式调用 interface ..... var AcroPDF: TAcroPDF; .... implementation .. ...
- String与基本类型,字符数组,字节数组的转换
String与基本数据类型 * 基本数据 --->字符串(String) * 1.基本数据类型值 +"" --->最简单 * 2.使用包装类中的toString(参数类 ...
- 阿里云短信功能php
1. 引入文件: https://help.aliyun.com/document_detail/53111.html?spm=a2c1g.8271268.10000.99.5a8ddf25gG0wW ...
- Jmeter扩展组件开发(5) - 初始化方法的作用与实现
CODE //URLNAME 就是在图形化界面当中显示的变量名称private static final String URLNAME = "URL";//设置界面当中默认显示的变 ...
- [手机编程]Aid Learning--换源+数据库安装
换源+MYSQL安装 Aid Learning下载安装 http://www.aidlearning.net/ 切换源 打开Terminal复制回车即可 cd /etc/apt/&& ...
- Navicat连接数据库成功,新建查询时提示错误“Cannot create file ……”
Navicat连接数据库成功,新建查询时提示错误"Cannot create file --" 原因:编辑连接{高级}<设置位置>被修改,该oci.dll不正确 解决方 ...