UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

2024-05-14 1112阅读

目录

一、UE4显示Echart图表

二、UE调用JS(修改Echart图表数据)

三、JS调用UE(UE4中打印js传递过来的数据)


一、UE4显示Echart图表

步骤:

1.下载WEBUI插件

我的UE编辑器版本是4.24.3对应版本的插件下载地址是

webui 插件:链接:https://pan.baidu.com/s/1vaZiqre8K2GEueVJOtZ2fA?pwd=xsby 

提取码:xsby 

下载后解压放到Plugins文件夹中

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

 2.在Echart上下载一个例子

我下载的例子的链接:

Examples - Apache ECharts

点击下载示例

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

3.下载的HTML文件放到Content 或其子文件夹内:

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

4. 修改该HTML代码:




  


  
  
  
  
  
  
  
  
  
    "object"!=typeof ue||"object"!=typeof ue.interface?("object"!=typeof ue&&(ue={}),ue.interface={},ue.interface.broadcast=function(e,t){if("string"==typeof e){var o=[e,""];void 0!==t&&(o[1]=t);var n=encodeURIComponent(JSON.stringify(o));"object"==typeof history&&"function"==typeof history.pushState?(history.pushState({},"","#"+n),history.pushState({},"","#"+encodeURIComponent("[]"))):(document.location.hash=n,document.location.hash=encodeURIComponent("[]"))}}):function(e){ue.interface={},ue.interface.broadcast=function(t,o){"string"==typeof t&&(void 0!==o?e.broadcast(t,JSON.stringify(o)):e.broadcast(t,""))}}(ue.interface),(window.ue4=ue.interface.broadcast);
    var dom = document.getElementById('container');
    var myChart = echarts.init(dom, null, {
      renderer: 'canvas',
      useDirtyRect: false
    });
    var app = {};
    
    var option;
    option = {
  xAxis: {
    type: 'category',
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  },
  yAxis: {
    type: 'value'
  },
  series: [
    {
      data: [120, 200, 150, 80, 70, 110, 130],
      type: 'bar',
      showBackground: true,
      backgroundStyle: {
        color: 'rgba(180, 180, 180, 0.2)'
      }
    }
  ]
};
    if (option && typeof option === 'object') {
      myChart.setOption(option);
    }
    ue.interface.ue2js = function(ueData){
      var jsonObj = JSON.parse(ueData);
      myChart.setOption(jsonObj);
    };
    window.addEventListener('resize', myChart.resize);
  

5.创建一个控件蓝图

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

6.打开控件蓝图,将Webinterface拖入

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB) 命名为WebUI

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

7.点击 图表

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

 8.在图表中,调用WEBUI的LoadFile函数

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

 如果用的是网址,可以用LoadURL节点

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

 9.Diectory参数选择/Content,File填入你的HTML文件在Content文件夹中的相对路径

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

10.到关卡蓝图中,把刚才做好的控件蓝图放到窗口中

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

此时运行游戏,可以看到Echart柱状图

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

柱状图显示出来后下一步是修改柱状图的数据

二、UE调用JS(修改Echart图表数据)

11.回到控件蓝图,添加一个按钮

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

 再添加一个文本,命名为调用JS

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

 12.进入控件蓝图的图表

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

选中按钮,添加一个按钮点击事件

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

 在点击事件中,添加WebUI的Call函数

 UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

 Call函数的两个参数分别应该填函数名和函数的参数

函数名就是js代码中的ue2js,是在interface后自定义的

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

 填好后,节点如下:

 UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

 改变数据都为100:

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

 运行后,点击按钮将可以改变echart数据

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

此时,UE调用js的功能实现了,接下来要实现js调用UE的功能

三、JS调用UE(UE4中打印js传递过来的数据)

13.WebUI是用事件分发器做的,我们先绑定WebUI的Interface事件

在控件蓝图中添加如下标注区域的部分 

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

 可以看到自定义事件有Name(函数名)和Data(参数)两个参数

这里使用切换名称节点来区分不同事件

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

 现在开始在js中添加调用UE的代码

(由于该echart没有按钮,这里将UE的代码写到了UE调用js的函数里了)

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

 ue4函数中有三个参数,分别是函数名(必填项),函数的参数,还有函数的回调。这里只填了函数名和函数的参数,函数的参数可以是字符串或json对象。

写好js后,把切换名称节点的引脚名改成js传递的函数名

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

 然后打印一下传递过来的值

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

 运行游戏,点击按钮,可以看到视口打印了js传出来的字符串“hello”

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

上面完成了js向UE传递字符串,接下来再测试一下js传递json对象

将js代码改为如下:

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

 在UE中将Data转为对象:

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

利用get string提取键对应的值

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

取出des对应的字符串并打印(如果值是数组类型,可以用Get List节点取出键对应的值,其它以此类推)

 UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

 运行结果:

UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

原教学视频地址:

Echarts图表_WebUI_JS和UE交互

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]