【UE】绘制抛物线并投射物体

效果

步骤

1. 先新建父类为Actor的蓝图,这里命名为“BP_发射物”

打开“BP_发射物”,添加一个球形的静态网格体和一个发射物移动组件

2. 新建一个父类为角色的蓝图,这里命名为“BP_绘制抛物线”

打开“BP_绘制抛物线”

我们希望可以通过控制鼠标滚轮来控制发射距离的远近,因此先在事件图表中添加“鼠标滚轮轴”节点,如果我们将鼠标向前滚,该节点的引脚“Axis Value”输出的值就是正的,反之则是负的。

添加一个浮点类型的变量,这里命名为“发射距离”,默认值为400(cm)

将滚轮值乘100再加上初始的发射距离就得到抛物线的终点

因为不可能抛无限远,这里再添加一个限制范围,然后更新“发射距离”

接下来开始绘制抛物线

先添加两个自定义事件,分别命名为“开启抛物线”和“关闭抛物线”,当按下空格键的时候就执行“开启抛物线”,当松开空格键的时候就执行“关闭抛物线”事件。

在Tick后添加一个“Gate”门节点,当执行“开启抛物线”时就打开Tick事件的执行,反之则关闭

接下里添加一个本功能最重要的节点“按照对象类型预测发射物路径”,该节点可以根据传入的发射起始位置和发射速度来预测出抛物线上所有点的位置。引脚“Parojectile Radius”表示抛物线路径上绿色小球的半径,这里设置为35;引脚“Sim Frequency”表示绿色小球的密集程度,该值越大,输出引脚“Out Path Position”输出的点迹就越多;引脚“Max Sim Time”表示最大的预测时长,该值越大能够预测的抛物线的轨迹就越远。输出引脚“Out Path Position”输出的是预测出的抛物线上所有的点迹;输出引脚“Out Last Trace Destination”是最后一个点的位置。

为了能够编译通过,先将“按照对象类型预测发射物路径”节点的输入引脚“Object Types”提升为变量,默认值设置为“静态场景”

为了方便观察从哪一个位置发射出物体,这里先给“BP_绘制抛物线”添加一个球形的静态网格体,然后设置该网格体的无碰撞。

给球体一个初始的抛射方向

传入球体的初始位置和发射速度,其中发射速度由球体向前的方向*发射距离

添加一个样条组件

循环遍历所有的抛物线点,然后在每一个抛物线点位置处添加样条点

添加样条点后,继续添加样条网格体

样条网格体使用圆柱,向前轴设置为Z轴

设置样条网格体的起始和结束缩放

设置每个样条网格体的起始位置和结束位置

为了能够实时更新绘制抛物线,这里需要将每一个样条网格体添加到数组中

然后在开始绘制的时候先清空所有的样条点、样条网格体、抛物线路径点

折叠到函数,这里命名为“F_清除抛物线”

在事件“关闭抛物线”执行后再次调用“F_清除抛物线”

再添加一个摄像机组件,设置一下位置

3. 将“BP_绘制抛物线”拖入视口,然后设置自动控制玩家为玩家0

此时运行效果如下所示,可以通过空格控制抛物线的轨迹的绘制与清除,通过鼠标滑轮控制抛物线的抛掷距离

我们发现样条网格体(圆柱)太大了,将网格体缩放改小一点

再将摄像机位置和旋转改一下:

 此时效果如下:

如果还觉得抛物线绘制距离太短,我们可以将“Max Sim Time”的值改大一点

如果不想显示绿色的小圆球,可以将“Draw Debug Type”设置为无

此时效果如下:

如果希望能够沿着抛物线的方向抛射物体,我们可以在“关闭抛物线”事件执行后生成Actor,并设置发射物移动组件的速度。

此时效果如下所示:

参考视频:

https://www.bilibili.com/video/BV1jc411j74M/?spm_id_from=333.999.0.0&vd_source=36a3e35639c44bb339f59760641390a8

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/204720.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

芯片技术前沿:了解构现代集成电路的设计与制造

芯片技术前沿:解构现代集成电路的设计与制造 摘要:本文将深入探讨芯片技术的最新进展,重点关注集成电路的设计与制造。我们将带领读者了解芯片设计的基本流程,包括电路分析、版图设计和验证等步骤,并介绍当前主流的制…

LeetCode Hot100 236.二叉树的最近公共祖先

题目: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节…

每日一练2023.11.28———N个数求和【PTA】

题目链接: L1-009 N个数求和 题目要求: 本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。 输入格式: 输入第一行给出一个正整…

与中通支付对接

最近项目接入商户,商户需要同步给中通支付,报错两个异常已解决。 一、json报错 未接入中通SKD之前,不会报错,接入后,json转换异常。 排查后发现,中通的jar包里JSON版本太低,与自身项目的版本冲…

docker 安装elasticsearch集群

准备工作 docker 安装好,docker compose 安装好编辑好docker-compose.yml文件(本文会提供)生成elastic-certificates.p12密钥,与docker-compose文件在同一个目录(本文会介绍生成方式)准备elasticsearch配置…

虚拟机系列:vmware和Oracle VM VirtualBox虚拟机的区别,简述哪一个更适合我?以及相互转换

一. VMware和Oracle VM VirtualBox虚拟机的区别主要体现在以下几个方面: 首先两种软件的安装使用教程如下: VMware ESXI 安装使用教程 Oracle VM VirtualBox安装使用教程 商业模式:VMware是一家商业公司,而Oracle VM VirtualBox是开源软件; 功能:VMware拥有更多的功能和…

11.27二叉查找树,遍历二叉树,层序(判断是不是完全二叉树),根据遍历序列重构二叉树,递归输入建树(树的定义,结构体细节,typedef)

如果left<right&#xff0c;就表明其之间还有元素&#xff0c;即左右指针重合&#xff0c;区间只有一个元素也被包含其中&#xff1b; left<right,就表明递归过程中&#xff0c;只允许区间有两个及以上的元素&#xff0c;不允许区间只有一个元素&#xff0c;那么对应地&…

万户协同办公平台ezoffice SendFileCheckTemplateEdit.jsp接口存在SQL注入漏洞 附POC

@[toc] 万户协同办公平台ezoffice SendFileCheckTemplateEdit.jsp接口存在SQL注入漏洞 附POC 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文…

如何拥有免费的docker镜像仓库

shigen日更文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 hello&#xff0c;伙伴们&#xff0c;最近在研究devops的事情&#xff0c;发现了很有意思的东西。 就是我们所有…

qgis添加arcgis的mapserver

左侧浏览器-ArcGIS地图服务器-右键-新建连接 Folder: / 展开-双击图层即可

西南科技大学模拟电子技术实验二(二极管特性测试及其应用电路)预习报告

目录 一、计算/设计过程 二、画出并填写实验指导书上的预表 三、画出并填写实验指导书上的虚表 四、粘贴原理仿真、工程仿真截图 一、计算/设计过程 说明:本实验是验证性实验,计算预测验证结果。是设计性实验一定要从系统指标计算出元件参数过程,越详细越好。用公式输入…

LLM、ChatGPT与多模态必读论文150篇

为了写本 ChatGPT 笔记&#xff0c;我和10来位博士、业界大佬&#xff0c;在过去半年翻了大量中英文资料/paper&#xff0c;读完 ChatGPT 相关技术的150篇论文&#xff0c;当然还在不断深入。 由此而感慨&#xff1a; 读的论文越多&#xff0c;你会发现大部分人对ChatGPT的技…

正则表达式 通配符 awk文本处理工具

目录 什么是正则表达式 概念 正则表达式的结构 正则表达式的组成 元字符 元字符点&#xff08;.&#xff09; 代表字符. 点值表示点需要转义 \ r..t 代表r到t之间任意两个字符 过滤出小写 过滤出非小写 space空格 [[:space:]] 表示次数 位置锚定 例&#xff1a…

【开源】基于Vue.js的海南旅游景点推荐系统的设计和实现

项目编号&#xff1a; S 023 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S023&#xff0c;文末获取源码。} 项目编号&#xff1a;S023&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四…

webpack如何设置兼容浏览器的范围​browserslist

Browserslist 是前端工程化不可或缺的工具&#xff0c;无论是处理 js 的 babel 还是处理 css 的 postcss&#xff0c;他们背后都有Browserslist 的身影。 一、如何查看查看所有浏览器和它的市场占有率 我们如何知道现在的浏览器那些被废弃、那些市场占有率高&#xff0c;可以…

基于若依的ruoyi-nbcio流程管理系统增加流程节点配置(二)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 上一节把数据库与相关基础数据字典准备好&#xff0c;下面就来实现相应的功能&#xff0c;目前先针对自定义…

数据结构-交换排序(冒泡、快速)

冒泡排序 基本思想 先将第一个记录与第二个记录比较&#xff0c;将较大的记录放到第二个位置上&#xff0c;之后再将第二个记录与第三 个记录比较&#xff0c;将较大的记录放到第三个位置上&#xff0c;如此类推&#xff0c;知道比较完最后一个位置&#xff0c;此时注意到 …

『 Linux 』进程优先级

文章目录 什么是优先级Linux下的进程优先级PRI与NI使用top查看进程以及对进程的优先级的修改 进程优先级的其他概念竞争性与独立性并发与并行 什么是优先级 优先级,顾名思义,即在同一环境下不同单位对同一个资源的享有顺序; 一般优先级高的单位将优先占有该资源; 在进程当中进…

万宾科技第四代可燃气体监测仪的作用

燃气作为一种重要的能源已在居民生活、工业生产和商业活动等领域得到了广泛的应用。但是与之而来的便是各种各样的燃气管网的安全问题&#xff0c;其中燃气管网泄漏成为了城市生命线建设中亟待解决的安全隐患。因此采取切实有效的措施来保障燃气管网的安全运行&#xff0c;应用…