Ue5.2 数字孪生(9)——POI兴趣点
玩家相机视口跳转到POI兴趣点位置;将图标和文本分别绑定不同的点击事件:点击图片:玩家相机切换视角;点击文本:弹出点位具体信息弹框等等;由于图片和文本块控件的点击事件不全,这里可分别绑定父层级的边界控件;鼠标按下事件可以绑定同一事件,只对鼠标弹起事件进行区分;需要注意的点:对于绑定事件的边界控件的子项可视性需要设置为非可命中;将POI兴趣点的位置设置给玩家相机;图片点击事件:玩家相机视口跳转;文本
·
POI兴趣点:
- POI兴趣点(Point Of Interest)是地理信息系统范畴中的一个概念,指可以抽象为点的地理对象,尤其是一些与人们生活密切相关的地理实体,如学校、银行、餐馆、加油站、医院、超市、公交站等。
- 在数字孪生应用中主要是将一些建筑或设备位置以及信息进行标识;
Umg用户控件制作POI:
- 接下来参照网上一个团队的开源项目制作POI兴趣点;大家也可以在他们的官网上下载项目Demo;
INVETA:inveta · GitHub - 在新建文件夹中创建用户控件,用于制作POI兴趣点的图标按钮;
- 编辑用户界面的屏幕大小为自定义,宽度:26,高度:206;添加网格面板便于对POI图标以及文字进行排序;
控件制作细节部分就不一一展示了,大家可根据自己需要拼接;
我这边是将图片和文本块提升为变量,方便后续进行更改替换; - 将图标和文本分别绑定不同的点击事件:
点击图片:玩家相机切换视角;
点击文本:弹出点位具体信息弹框等等;
由于图片和文本块控件的点击事件不全,这里可分别绑定父层级的边界控件;
鼠标按下事件可以绑定同一事件,只对鼠标弹起事件进行区分;
需要注意的点:对于绑定事件的边界控件的子项可视性需要设置为非可命中; - 在Umg_POI事件图标中创建两个事件分发器:
点击图片:Click_Image;
点击文本:Click_Text; - 鼠标点击UI,按下事件图表:
- 在鼠标弹起时调用对应的图片点击事件、文本点击事件;
鼠标左键在图片上弹起就调用图片的点击事件,反之调用文本的点击事件;
Umg_POI用户控件的相关设置就完成了;
POI蓝图类:
- 创建空Actor蓝图类作为Umg_POI用户控件的载体(Actor类可直接放置到场景中);
- 添加控件组件,并对细节属性进行设置:
选择对应的控件类、绘制大小、位置等; - 在蓝图事件图表中,通过控件组件进行类型转换得到Umg_POI用户控件的引用,可调取用户控件中的事件、变量等信息;
- 通过引用获取Umg_POI用户控件中的图片、文本并进行设置;
当然也可对控件中的其他变量进行设置,记得举一反三;
将变量提升为可编辑实例:可在游戏场景中选中POI蓝图类时对其属性参数直接修改; - 考虑到一些POI兴趣点只有单独的图片,没有文本描述类型;
可以通过判断Text文本变量值对文本框的背景控件进行可视性的设置; - 绑定图片点击事件、文本点击事件:
执行相关事件操作:
图片点击事件:玩家相机视口跳转;
文本点击事件:返回文本信息等POI兴趣点的其他信息; - 可将POI蓝图类放到游戏场景中,在细节属性面板中修改图片以及文本内容,运行游戏进行测试;发现点击响应都没有问题;
- 关于点击图片,玩家相机视口跳转到POI兴趣点位置;
将POI兴趣点的位置设置给玩家相机;
需要注意的一个点:设置位置时先判断一下当前玩家Pawn是否为自由飞行相机(BP_CameraPawn),不是则不进行设置,不然就会出现第三人称角色瞬移到房顶的情况; - POI蓝图整体的事件图表:
- 下期更新天气系统:
虚幻商城资产包:Ultra Dynamic Sky
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献3条内容
所有评论(0)