采用Cesium for Unreal创建航班追踪器过程中问题汇总

采用Cesium for Unreal创建航班追踪器过程中问题汇总_第1张图片

(七)Cesium for Unreal创建航班追踪器(译) - 3DforFun的文章 - 知乎 https://zhuanlan.zhihu.com/p/375083272

        上述链接为Cesium for Unreal创建航班追踪器的教程,个人就是根据这个教程来做的,中间遇到过不少的问题,幸运的是一一解决了,在这里做一下总结,也和有同样兴趣的人做一下分享。

问题1 :

在教程第二步:添加PlaneTrack类->3 部分 添加下述头文件时,程序会报错。

// 添加头文件引用。确保在PlaneTrack.generated.h代码之前(否则会导致编译错误)
#include "Components/SplineComponent.h"
#include "CesiumGeoreference.h"
#include "Engine/DataTable.h"

采用Cesium for Unreal创建航班追踪器过程中问题汇总_第2张图片

需要你自己逐个找到头文件所在的目录,把相关目录添加到VC++目录-包含目录中,做完上述操作,一般报错就会消失。

问题2:

glm::dvec3 UECoords = 
this->CesiumGeoreference->TransformLongitudeLatitudeHeightToUe(
glm::dvec3(PointLongitude, PointLatitude, PointHeight));

 上述代码中的TransformLongitudeLatitudeHeightToUe函数已更新为TransformLongitudeLatitudeHeightToUnreal函数,所以正确的代码应该是下面所示:

//计算UE里的坐标
glm::dvec3 UECoords = 
this->CesiumGeoreference->TransformLongitudeLatitudeHeightToUnreal(
				glm::dvec3(PointLongitude, PointLatitude, PointHeight));

问题3:

const glm::dmat4& ecefToUnreal = 
this->CesiumGeoreference->GetEllipsoidCenteredToUnrealWorldTransform();
glm::dvec4 unrealUp = ecefToUnreal * ecefUp;

 代码中的GetEllipsoidCenteredToUnrealWorldTransform函数已经没有了,取而代之的是

glm::dvec4 unrealUp =
 _geoTransforms.GetEllipsoidCenteredToAbsoluteUnrealWorldTransform() * ecefUp;

具体参看链接: http://t.csdn.cn/JosZn

问题4:

在完成教程中的步骤后,测试编译-运行,发现自己的结果很诡异:

采用Cesium for Unreal创建航班追踪器过程中问题汇总_第3张图片

 飞机不停的闪烁,这是运行时的截图。

最后发现问题在这里

采用Cesium for Unreal创建航班追踪器过程中问题汇总_第4张图片

 不应该是,Duration/1,应该是1/Duration。

因为该函数中上方的引脚是A引脚,下方的引脚是B引脚,所以Duration的值应该连接到B引脚,A的值更改为1.0:

采用Cesium for Unreal创建航班追踪器过程中问题汇总_第5张图片

注意:float/float函数的针脚的数值可以直接更改。

采用Cesium for Unreal创建航班追踪器过程中问题汇总_第6张图片

 完成上述设置,飞机就可以沿航线移动了。

问题5:

解决了上述问题后,飞机沿航线移动如图所示:

采用Cesium for Unreal创建航班追踪器过程中问题汇总_第7张图片

 飞机机头指向航向的垂直方向。这是明显不正常的。

我尝试着对BP_Craft actor的姿态进行调整(如下图红框中所示)

采用Cesium for Unreal创建航班追踪器过程中问题汇总_第8张图片

或者对PlaneTrack进行调试,最终发现都没有效果。

最后,在一位高人的指点下终于明白,需要在静态网格体(StaticMeshComponent)层面进行调整。如下图所示:

 采用Cesium for Unreal创建航班追踪器过程中问题汇总_第9张图片

 调整完毕,如果没有异常情况,飞机就会沿着航线飞行了。

采用Cesium for Unreal创建航班追踪器过程中问题汇总_第10张图片

采用Cesium for Unreal创建航班追踪器过程中问题汇总_第11张图片

采用Cesium for Unreal创建航班追踪器过程中问题汇总_第12张图片  

你可能感兴趣的:(虚幻,飞行追踪器,Cesium,Unreal,Flight,Tracker)