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
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐