基于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++】抛物线路径、发射轨道相关的更多相关文章

  1. /etc/profile 路径出错后相关的命令失效解决方式

    关于 Linux 的配置文件 /etc/profile 路径出错后相关的命令失效解决方式(如:ls,vi不能用) 今天学习LINUX 下配置jdk 和安装tomcat 通过VI编辑/etc/profi ...

  2. UE4 Android相对路径转绝对路径方法笔记

    在windows端用FPaths::ConvertRelativePathToFull可以将相对路径转成绝对路径. 在Andoird端,就麻烦些.可模仿UE4源码中AndroidFile.Cpp转换相 ...

  3. 卫星轨道相关笔记SGP4

    由卫星历书确定卫星轨道状态向量 卫星历书的表示方法有2种: TLE(Two Line Element),和轨道根数表示方法 由卫星历书计算出卫星轨道状态向量的方法有2种: SGP方法,NORAD的方法 ...

  4. 11g直接路径读、相关参数、10949事件介绍

    转载自刘向兵老师:http://www.askmaclean.com/archives/11g-direct-path-read-10949-_small_table_threshold-_seria ...

  5. PHP中文件类型 文件属性 路径以及 文件相关的函数

    一: 文件类型判断: 1.is_dir()  判断是不是目录 2.is_file() 判断是不是文件 3.is_executable() 判断是不是可执行文件 4.is_readable()  判断是 ...

  6. .md图片链接转存并替换路径,及相关报错解决方法

    最初我想把Typora中.md文件中的web图片链接都下载保存到本地,并且替换.md文本中的路径 说干就干,因为在网上没有找到现成的程序所以自己写了这个程序 思路是循环查找文件夹中的文件,然后yiel ...

  7. 【UE4 C++】学习笔记汇总

    UE4 概念知识 基础概念--文件结构.类型.反射.编译.接口.垃圾回收.序列化[导图] GamePlay架构[导图] 类的继承层级关系[导图] 反射机制 垃圾回收机制/算法 序列化 Actor 的生 ...

  8. Android 利用二次贝塞尔曲线模仿购物车加入物品抛物线动画

    Android 利用二次贝塞尔曲线模仿购物车加入物品抛物线动画 0.首先.先给出一张效果gif图. 1.贝塞尔曲线原理及相关公式參考:http://www.jianshu.com/p/c0d7ad79 ...

  9. SVG的路径动画效果

    使用SVG animateMotion实现的一个动画路径效果,相关代码如下. 在线调试唯一地址:http://www.gbtags.com/gb/debug/c88f4099-5056-4ad7-af ...

随机推荐

  1. Tars | 第4篇 Subset路由规则业务分析与源码探索

    目录 前言 1. Subset不是负载均衡 1.1 任务需求 1.2 负载均衡源码结构图 1.3 负载均衡四种调用器 1.4 新增两种负载均衡调用器 1.5 Subset应该是"过滤&quo ...

  2. Linux常用命令 - less命令详解

    21篇测试必备的Linux常用命令,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1672457.html 查看文 ...

  3. php-fpm进程数控制

    一.名词解释 CGI是Common Gateway Interface(通用网管协议),用于让交互程序和Web服务器通信的协议.负责处理URL的请求,启动一个进程,将客户端发送的数据作为输入,有Web ...

  4. 【HMS Core 6.0全球上线】Toolkit,您的智能辅助编程好帮手

    HMS Core 6.0已于7月15日全球上线.本次版本中,华为HMS Toolkit向广大开发者推出了智能辅助编程助手SmartCoder,帮助开发者轻松高效地集成HMS Core,开发新功能,创建 ...

  5. 转:C# PDFbox读取PDF内容

    using System; using System.Windows.Forms; using org.apache.pdfbox.pdmodel; using org.apache.pdfbox.u ...

  6. weblogic漏洞初探之CVE-2015-4852

    weblogic漏洞初探之CVE-2015-4852 一.环境搭建 1. 搭建docker 这里用了vulhub的环境进行修改:https://vulhub.org/ 新建个文件夹,创建两个文件doc ...

  7. [源码解析] 深度学习分布式训练框架 horovod (21) --- 之如何恢复训练

    [源码解析] 深度学习分布式训练框架 horovod (21) --- 之如何恢复训练 目录 [源码解析] 深度学习分布式训练框架 horovod (21) --- 之如何恢复训练 0x00 摘要 0 ...

  8. 微信公众号授权获取code带多个参数 丢失参数

    https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&re ...

  9. ecshop 首页调用指定分类下的销售排行

    /*首页调用指定分类下的销售排行*/ function get_cats_top10($cat = '') { $sql = 'SELECT cat_id, cat_name ' . 'FROM ' ...

  10. python 建站教程

    主端:安装nginx uwsgi django pymysql mysql安装mysql到http://repo.mysql.com/里面找 mysql57-community-release-el7 ...