目录
3.3 添加Cesium Encode Metadata插件
0.1 效果展示
在UE5中使用CesiumForUnreal加载本地3dtiles数据,3dtiles数据带有属性信息字段,通过材质图层来实现对3dtiles数据进行点击单体高亮显示效果,效果如下:
0.2 实现步骤
- 数据准备:准备在线发布好的3dtiles数据或者本地3dtiles数据,数据需要有属性字段
- 属性查询:使用CesiumForUnreal的射线检测拾取到点击的单体数据进行属性查询
- 单体高亮:基于 Cesium Encoded Metadata组件,使用材质图层的方式实现单体高亮效果
1 数据准备
准备本地或者在线发布的带有属性信息字段的3dtiles数据,在线发布可以借助于cesiumLab进行发布,如果是本地数据,url的路径格式为:file:/// + “本地数据的绝对路径”,本例子中,我加载的本地数据路径如下:保证3dtile数据的正确加载显示
2 属性查询
属性查询在Cesium 官网和例子中都有相关示例,为了快速搭建工程,我是基于Cesium-Unreal-Samples示例工程中的06_CesiumMetadata进行改造实现的
2.1 射线检测
在关卡蓝图中根据鼠标左键按下进行射线检测,获取碰撞Hit Component和Face Index
2.2 获取FeatureID
通过碰撞检测到的Hit Component和FaceId,获取到碰撞的FeatureId
2.3 属性查询
这里参考Cesium-unreal-sample示例工程中的Widget来显示属性信息(key-value),具体蓝图实现如下:
2.4 属性显示
在编辑器视口中运行游戏,鼠标左键点选,就可获取到属性查询信息
3 单体高亮
挑选出3dtiles中具有唯一值的属性字段,用于单体要素的全局唯一标识