【数字孪生】UE4虚幻引擎与前端Web页面的结合

目录

介绍

UE初学者,非专业UE工程师,在项目中需要使用UE4结合前端页面完成三维场景与前端图表的联动效果,自学总结方法,使用的版本为UE4.26。

基础准备

1. 使用Vue、Echarts创建前端页面(需要前端基础);
作为Demo演示,可前往echarts官网示例,任意选择一图表并下载:
在这里插入图片描述
在这里插入图片描述
下载成功后获得一个HTML文件,或任意你自己的页面均可。

2. 使用UE4.26创建一个空项目即可;
在这里插入图片描述
在这里插入图片描述

3. UE4插件WebUI的使用;

  • 下载
    可前往git官网下载指定版本,本人使用的4.26版本免费下载
  • 安装插件
    下载解压完包后,需将解压的文件夹放到你安装的UE指定路径下,如:

D:\Program Files\Epic Games\UE_4.26\Engine\Plugins\Runtime

JsonLibrary文件夹
在WebUI文件夹
HttpLibrary文件夹

  • 打开上面创建的UE项目,选择编辑菜单下的插件管理,搜索刚安装的WebUI,点击启动并重启UE项目。
    在这里插入图片描述

  • 在UE内容浏览器界面右击新建选择用户界面下的控件蓝图,命名webInterface。
    在这里插入图片描述

  • 打开webInterface蓝图,在控制面板搜索web interface,添加到下方控件栏。
    在这里插入图片描述

  • 点击右边锚点,选择全屏类型的,按ctrl+鼠标左击,将webInterface铺满页面,重命名Browser,保存关闭。
    在这里插入图片描述

  • 创建一个新的蓝图类,此处选择HUD,并命名为MyHUD。
    在这里插入图片描述

在这里插入图片描述

  • 编辑MyHUD蓝图
    1.创建控件,选择Class为webInterface,将事件开始运行连接到上面,OwningPlayer拖出创建获取拥有玩家控器,return value拖出提升为变量,设置变量名为Widget。
    在这里插入图片描述
    2.从变量Widget拖出获取变量Browser,从Browser拖出绑定事件到OnInterfaceEvent,将SET连接到绑定事件到OnInterfaceEvent。从事件处拖出添加自定义事件,此处可先默认添加简单的打印事件(后续此处会绑定与前端页面交互的事件)。
    在这里插入图片描述
    在这里插入图片描述
    3.再次获取组件Widget,拖出创建添加到视口。并将添加到视口连接到前面的绑定事件。
    在这里插入图片描述
    4.从Widget拖出获取Browser,在从Browser拖出,创建设置仅输入模式UI,从设置仅输入模式UI的Player Controller拖出获取玩家控制器
    在这里插入图片描述
    5.设置鼠标显示光标,加载HTML文件。编译保存。
    在这里插入图片描述
    这里讲一下LoadFile函数,里面是调用了 WebUI插件里面的Load函数,注意它的HTML文件路径是在Content/HTML下的。
    在这里插入图片描述
    如在项目的Content文件夹下创建一个HTML文件夹,在HTML文件夹中有一个index.html,则在上面的传入的File字符串为index.html。当然文件夹路径可自取,只需修改下拼接的路径名即可。
    在这里插入图片描述
  • 为了使用MyHUD蓝图,我们需再创建一个蓝图类,选择GameModeBase。创建并命名MyGameMode。
    在这里插入图片描述

在这里插入图片描述

  • 打开MyGameMode,设置选择HUD类,为刚创建的MyHUD。
    在这里插入图片描述

  • 选择我们默认的关卡Main或任意你自己创建的关卡,在世界场景设置中,游戏模式重载选择对应的MyGameMode。
    在这里插入图片描述

  • 点击保存所有文件,点击运行,你自己的HTML页面就展示在UE4上面了。
    在这里插入图片描述

鼠标穿透设置

由于前端页面铺满整个UE界面,会遮挡鼠标对UE底板模型的操作,使用WebUI插件可以很好的解决这个问题。只需要在创建的WebInterface控件蓝图中,选择webInterface,设置开启Enable Transparency
在这里插入图片描述

备注

在实际操作中还会存在各种需求问题,会在其他文章讲解。
1.两端的接口函数调用如何操作;
2.加载HTML文件的几种方式;
3.UE4.26中HTML的video标签无法正常播放视频;

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注