当前位置: 首页 > news >正文

【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&#xff0…...

【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 i​​​​​​th​​​​ task will be available to process at enque…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题&#xff0c;导致车牌识别率低、逃费率高&#xff0c;传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法&#xff0c;正成为破局关键。该设备安装于车位侧方0.5-0.7米高度&#xff0c;直接规避树枝遮…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...

针对药品仓库的效期管理问题,如何利用WMS系统“破局”

案例&#xff1a; 某医药分销企业&#xff0c;主要经营各类药品的批发与零售。由于药品的特殊性&#xff0c;效期管理至关重要&#xff0c;但该企业一直面临效期问题的困扰。在未使用WMS系统之前&#xff0c;其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...

[特殊字符] 手撸 Redis 互斥锁那些坑

&#x1f4d6; 手撸 Redis 互斥锁那些坑 最近搞业务遇到高并发下同一个 key 的互斥操作&#xff0c;想实现分布式环境下的互斥锁。于是私下顺手手撸了个基于 Redis 的简单互斥锁&#xff0c;也顺便跟 Redisson 的 RLock 机制对比了下&#xff0c;记录一波&#xff0c;别踩我踩过…...

在Zenodo下载文件 用到googlecolab googledrive

方法&#xff1a;Figshare/Zenodo上的数据/文件下载不下来&#xff1f;尝试利用Google Colab &#xff1a;https://zhuanlan.zhihu.com/p/1898503078782674027 参考&#xff1a; 通过Colab&谷歌云下载Figshare数据&#xff0c;超级实用&#xff01;&#xff01;&#xff0…...