【UE5 Cesium】19-Cesium for Unreal 建立飞行跟踪器(4)
遗留问题
在上一篇博客中(【UE5 Cesium】18-Cesium for Unreal 建立飞行跟踪器(3)),我们实现了飞机变速飞行的功能,但是还存在两个问题,分别是:
(1)由于UE的坐标系的方向与地理坐标系的方向不相符,飞机飞行一段时间后会出现飞机斜着飞的情况
(2)由于CesiumSunSky一直没有改变,因此飞机飞的比较远时会出现黑夜
解决思路
(1)CesiumGeoreference 的 Origin 必须变化,否则UE坐标的方向与地理坐标不一致 (可Lat或Long变化超过1度时重设
(2)BP_Aircraft 必须加上Cesium Globe Anchor组件,否则CesiumGeoreference变化的话,无法保证它的位置正确
(3)CesiumSunSky要根据经纬度设置下时区,否则有黑夜区间(时区=经度/1)
(4)用TweenMaker插件来处理DeltaTime时间内的移动(不买插件的话,自己写个类似的函数也是可以的)
(5)要处理DeltaTime时间内的物体的转向问题,即让机头一直朝着飞行前进的方向
步骤
1. 在虚幻引擎中启用“TweenMaker”插件(需购买)

在场景中添加一个“TweenManagerActor”,这样我们就可以使用“TweenMaker”插件中的节点了

2. 复制一份“BP_Aircraft”,新蓝图就叫“BP_Aircraft_2”

打开“BP_Aircraft_2”,删除事件图表中的所有节点,删除所有变量,添加一个“CesiumGlobeAnchor”组件

新建一个变量,命名为“PreviousTrans”,类型为“变换”,勾选可编辑实例,该变量用于表示飞机在上一个点的位置和朝向

3. 将“BP_Aircraft_2”拖入视口

4. 打开关卡蓝图,在游戏刚开始运行时设置飞机的初始Transform

在关卡蓝图中添加如下变量,其中,“DeltaTime”表示采样点的采样时间间隔,这里设置为1s;“Index”表示当前是第几个采样点的索引;“Longitude”表示当前飞机的经度;“Latitude”表示纬度;“Height”表示当前飞机的高度。

继续在关卡蓝图中的事件图表添加如下节点,当我们按下N键时,先设置当前读取的表格行数索引为1(0是表头行),判断当前是否未完成读取表格的所有行,如果未读取完,就继续获取表格中每一行的经纬高


设置飞机的朝向:



添加如下节点(插件“TweenMaker”中的节点),其中,引脚“Tween Target”表示被移动的对象,“To”表示移动到的位置,“Duration”表示移动所需时间;输出引脚“On Tween End”是完成移动后才执行


移动完成后,首先把“Index”+1

然后判断是否需要设置CesiumGeoreference的Origin和CesiumSunSky的时区(判断当前飞机的经纬度和CesiumGeoreference的经纬度是否相差超过1,只要有一个超过1就重新设置CesiumGeoreference的Origin和CesiumSunSky的时区)


如果条件为假就更新一下飞机上一个点的位置


更新后继续获取表格中飞机下一个航线点的位置

这里将deltaTime设置为1s,一共625个点则总时长为625s,也就是近10分钟飞机就可以从旧金山飞到欧洲
参考视频:
https://www.bilibili.com/video/BV1Fm4y1p7cV/?spm_id_from=pageDriver&vd_source=36a3e35639c44bb339f59760641390a8
相关文章:
【UE5 Cesium】19-Cesium for Unreal 建立飞行跟踪器(4)
遗留问题 在上一篇博客中(【UE5 Cesium】18-Cesium for Unreal 建立飞行跟踪器(3)),我们实现了飞机变速飞行的功能,但是还存在两个问题,分别是: (1)由于UE的…...
TrustZone
TrustZone技术 让我们从最重要的问题开始:为什么存在TrustZone技术,它防御什么?保护用 C 和 C 编写的大型程序免受黑客攻击可能是一个挑战。内存损坏漏洞是一个常见问题,尽管消除它们是安全工程师的核心目标,但从操作…...
✔ ★【备战实习(面经+项目+算法)】 10.16学习时间表(总计学习时间:5h)
✔ ★【备战实习(面经项目算法)】 坚持完成每天必做如何找到好工作1. 科学的学习方法(专注!效率!记忆!心流!)2. 每天认真完成必做项,踏实学习技术 认真完成每天必做&…...
React + Router
React Router 这个只是专门讲解 React Router 新开的例子。 教程来源:https://reactrouter.com/en/main/start/tutorial 创建新项目 yarn create vite my-react-router-app --template react-ts cd my-react-router-app yarn安装 React Router 依赖: yarn add…...
微信小程序设置动态变量设值
微信小程序设置动态变量设值 微信小程序如何动态变量设值? 示例代码如下: setValFunc() {const key this.data.currentPickerid; // 业务需求动态键值key,或者是上一界面获取的动态key值const value 变量值;this.setData({[${key}]: valu…...
闪站侠洗衣洗鞋多门店多用户管理系统,洗鞋店干洗店小程序开发;
闪站侠洗护软件是多分店多用户管理系统,一个分店可以同时关联多个用户。闪站侠洗护管理软件通过互联网为洗衣店/洗鞋店干洗店提供加盟或直营连锁管理; 实现会员洗衣的门店收衣->上门收衣->开单拍照->清洗护理/工厂洗涤->微|信/短…...
JDBC增删改查示例
数据库表 CREATE TABLE customers ( id int NOT NULL AUTO_INCREMENT, name varchar(15) DEFAULT NULL, email varchar(20) DEFAULT NULL, birth date DEFAULT NULL, photo mediumblob, PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT39 DEFAULT CHARSETgb2312;…...
emqx broker安装
emqx broker安装 Emq x百万级开源 MQTT 消息服务器 是基于 Erlang/OTP 语言平台开发 一款完全开源,高可用低时延的百万级分布式物联网 MQTT 5.0 消息服务器 官方地址: https://www.emqx.com/zh Centos7 安装 #下载Centos7 amd64位版本 wget https://www.emqx.c…...
如何选择国产压力测试工具?
随着互联网的飞速发展,软件应用的性能和稳定性变得愈发重要。无论是在线购物网站、社交媒体平台还是移动应用程序,用户都期望能够快速、流畅地访问和使用它们。为了确保应用程序在高负载下仍能够正常运行,压力测试工具变得至关重要。在国内&a…...
基于AT89C51流水花样灯proteus仿真设计
一、仿真原理图: 二、仿真效果图: 三、仿真工程: c51单片机流水灯花样灯proteus仿真设计资源-CSDN文库...
android U广播详解(二)
android U广播详解(一) 基础代码介绍 广播相关 // 用作单个进程批量分发receivers,已被丢弃 frameworks/base/services/core/java/com/android/server/am/BroadcastReceiverBatch.java // 主要逻辑所在类,包括入队、分发、结束…...
导航守卫的使用记录和beforeEach( )死循环的问题
前置导航守卫beforeEach的使用 import Vue from vue import VueRouter from vue-router // 进度条 import NProgress from nprogress import nprogress/nprogress.cssVue.use(VueRouter)// 路由表 const routes [{path: "/",redirect: "/home",},{path: …...
SpringMVC源码分析(三)HandlerExceptionResolver启动和异常处理源码分析
问题:异常处理器在SpringMVC中是如何进行初始化以及使用的? Spring MVC提供处理异常的方式主要分为两种: 1、实现HandlerExceptionResolver方式(HandlerExceptionResolver是一个接口,在SpringMVC有一些默认的实现也可以…...
系统架构与Tomcat的安装和配置
2023.10.16 今天是学习javaweb的第一天,主要学习了系统架构的相关知识和原理,下载了web服务器软件:Tomcat,并对其进行了配置。 系统架构 包括:C/S架构 和 B/S架构。 C/S架构: Client / Server࿰…...
【Shell脚本】根据起止日期获取Alert日志内容
【Shell脚本】根据起止日期获取Alert日志内容 根据输入的起止日期字符串,检索Oracle告警日志,打印中间的日志行内容。 #!/bin/bash # $1 START_TIME_STR, e.g. "Oct 17 07:" # $2 END_TIME_STR, e.g. "Oct 17 08:" source /home/o…...
Library projects cannot set applicationId. applicationId is set to
Library projects cannot set applicationId. applicationId is set to com.xxx.library_cache in default config. 删掉即可...
【兔子王赠书第2期】《案例学Python(基础篇)》
文章目录 前言推荐图书本书特色本书目录本书样章本书读者对象粉丝福利丨评论免费赠书尾声 前言 随着人工智能和大数据的蓬勃发展,Python将会得到越来越多开发者的喜爱和应用。身边有很多朋友都开始使用Python语言进行开发。正是因为Python是一门如此受欢迎的编程语…...
用户行为数据案例
一、环境要求 HadoopHiveSparkHBase 开发环境。 二、数据描述 本数据集包含了2017-09-11至2017-12-03之间有行为的约5458位随机用户的所有行为(行为包括点击、购买、加购、喜欢)。数据集的每一行表示一条用户行为,由用户ID、商品ID、商品类…...
selenium教程 —— css定位
说明:本篇博客基于selenium 4.1.0 selenium-css定位 element_css driver.find_element(By.CSS_SELECTOR, css表达式) 复制代码 css定位说明 selenium中的css定位,实际是通过css选择器来定位到具体元素,css选择器来自于css语法 css定位优点…...
Leetcode 1834. Single-Threaded CPU (堆好题)
Single-Threaded CPU Medium You are given n tasks labeled from 0 to n - 1 represented by a 2D integer array tasks, where tasks[i] [enqueueTimei, processingTimei] means that the ith task will be available to process at enque…...
基于“点击化学”的聚合物荧光标记定制合成
当化学成为“纽带”:基于点击化学的聚合物荧光标记定制合成关于我们的定制在生物医学成像与材料科学的前沿研究中,获得一种既能稳定发光、又能精准标记目标分子的探针,往往是实验成功的关键。我们专注于为客户提供基于点击化学的聚合物荧光标…...
智能驾驶系统场景下的自动化仿真测试评价技术【附仿真】
✨ 长期致力于智能驾驶系统、有效性评价、测试用例生成、测试场景优化、自动化仿真测试平台研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)基于复杂度…...
别再乱加“impressionism”!Midjourney印象派风格生效的3个前置条件,90%新手忽略第2条
更多请点击: https://codechina.net 第一章:印象派风格在Midjourney中的本质误读与认知纠偏 当用户在 Midjourney 中输入 --style raw --s 750 并附加诸如 “impressionist painting” 或 “Monet style” 等提示词时,模型实际响应的并非印…...
SABIC塑料与宏裕塑胶的卓越合作:高性能材料的行业应用
导读:在制造业转型升级的关键时期,高性能工程塑料的应用正成为企业提升产品竞争力的核心要素。SABIC塑料与宏裕塑胶的卓越合作,为行业提供了从原料选型到技术落地的完整解决方案,这种强强联合的模式正在重新定义高端材料供应体系。…...
claudecode用户如何通过taotoken解决封号与token不足的痛点
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 claudecode用户如何通过taotoken解决封号与token不足的痛点 1. 场景与核心挑战 对于深度使用 Claude Code 编程助手的开发者而言&…...
Windows与Office激活终极指南:KMS_VL_ALL_AIO完整解决方案
Windows与Office激活终极指南:KMS_VL_ALL_AIO完整解决方案 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 在Windows和Office激活管理中,你是否经常遇到版本不匹配、激活…...
IDM激活脚本:破解30天限制背后的注册表权限技术内幕
IDM激活脚本:破解30天限制背后的注册表权限技术内幕 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script 你是否曾经因为IDM的30天试用期到期而烦恼&#…...
终极解决方案:在Chrome浏览器中实现密码无缝同步
终极解决方案:在Chrome浏览器中实现密码无缝同步 【免费下载链接】ChromeKeePass Chrome extensions for automatically filling credentials from KeePass 项目地址: https://gitcode.com/gh_mirrors/ch/ChromeKeePass 你是否厌倦了每次登录网站时都要手动从…...
【仅限前500名设计师获取】Midjourney双色调调色板生成器(含17组经Adobe Color验证的高转化配色矩阵)
更多请点击: https://codechina.net 第一章:Midjourney双色调调色范式的底层逻辑与设计价值 双色调(Duotone)并非简单叠加两种颜色,而是基于人眼视觉感知的非线性响应特性,在Midjourney中构建的一套语义化…...
别再只删node_modules了!npm run serve报错‘There is likely additional logging output above’的完整排查与修复手册
从日志溯源到根治:npm run serve报错的系统性排查指南 当你满怀期待地敲下npm run serve,却迎面撞上那句"There is likely additional logging output above"时,是否感到一阵无力?删除node_modules重装就像重启电脑——…...
