UE4 WebUI使用指南2-通信
前面一篇WebUI的文章讲述的WebUI插件的下载,开启,在UE中创建,加载网页等。
本文继续讲述通过WebUI,UE和网页实现双向通信的实现思路。
一点说明
由于WebUI 使用的浏览器内核并不是最新的浏览器内核,所以一些新的JS语法和新的CSS并不支持。 比如不支持解构语法等。
所以在制作页面的时候需要注意这些问题点。
调试
如果遇到问题,需要调试,在WebUI加载网页之后,点击网页上任意元素,然后按下shift+ctrl+i 可以调出网页控制台,进行错误查看。
引入通信JS代码
要实现UE和页面的通信,首先需要在页面中引入一段js代码,如下所示:
"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);window.ue=ue;
该js代码片段为WebUI官方推荐。
网页向UE发送消息
网页向UE发消息比较如意,通过ue4函数,既可向UE发送消息,ue4函数支持两个参数,name和data,name是string格式,data是json格式,如下所示:
ue4("cmd",{value:123})
UE接受消息
UE接受消息,通过蓝图即可监听webui的消息即可,如下图(蓝图)所示:
其中name和Data是网页传递过来的参数,Callback此处不详述,一般用不上。
网页接受UE消息
网页除了可以给UE发送消息外,还可以接受来自UE的消息。 只需要在ue.interface对象上面,添加一个回调函数,即可接受消息,如下所示:
ue.interface.add = function (data) {
const { initValue } = JSON.parse(data);
// todo
};
UE发送消息给网页
UE想网页发送消息的蓝图如下所示,调用webUI的Call方法,Function传递函数名称,Data 传递函数的参数
:
总结
本文提供了UE和网页的双向通信的方式的思路,具体细节需要大家自己多上手尝试。
太阳虽好,总要诸君亲自去晒,旁人却替你晒不来。
最后,关注公号“ITMan彪叔” 可以添加作者微信进行交流,及时收到更多有价值的文章。
UE4 WebUI使用指南2-通信的更多相关文章
- UE4 WebUI插件使用指南
在开发数字孪生应用程序的时候,除了三维场景展示之外,也需要开发丰富和酷炫的2D页面. 使用UE4的UMG开发图表显得比较笨拙. 而通过Web插件允许开发者创建丰富的基于Web HTML5的用户界面,它 ...
- UE4 Socket多线程非阻塞通信
转自:https://blog.csdn.net/lunweiwangxi3/article/details/50468593 ue4自带的Fsocket用起来依旧不是那么的顺手,感觉超出了我的理解范 ...
- UE4学习心得:蓝图间信息通信的几种方法
蓝图间通信是一个复杂关卡能否正常运行的关键,笔者在这里提供几种蓝图类之间的信息交互方法,希望能对读者有所帮助. 1.类引用 这是最直接的一种蓝图类之间的信息交互方式.首先在Editor中创建2个Act ...
- UE4 Sockets多线程TCP通信
转自:https://blog.csdn.net/zilisen/article/details/75007447 一.简介 UE4引擎是提供了Sockets模块和Networking模块的,博主在研 ...
- UE4修改自Rama的UDP通信蓝图插件
UE4.15没有提供蓝图UDP的组件,可以在网上找到一个ID叫Rama写的源代码,我把它封装成插件了(MyUdpPlugin),方便在各个UE4版本工程中使用UDP通信. 使用方式: 1.在自己的工程 ...
- ue4 1官网编程指南总结
https://docs.unrealengine.com/latest/CHN/index.html 中编程指南 快速入门 actor生命周期 FloatingActor.h #pragma onc ...
- ue4同c#通信时的中文乱码问题
转:https://blog.csdn.net/XIAOZHI0999/article/details/80785570 本文讨论C#同ue4进行通信,出现的中文乱码情况,其他语言类似. 本文分两种情 ...
- 开源项目SMSS发开指南(四)——SSL/TLS加密通信详解
本文将详细介绍如何在Java端.C++端和NodeJs端实现基于SSL/TLS的加密通信,重点分析Java端利用SocketChannel和SSLEngine从握手到数据发送/接收的完整过程.本文也涵 ...
- 开源项目SMSS发开指南(五)——SSL/TLS加密通信详解(下)
继上一篇介绍如何在多种语言之间使用SSL加密通信,今天我们关注Java端的证书创建以及支持SSL的NioSocket服务端开发.完整源码 一.创建keystore文件 网上大多数是通过jdk命令创建秘 ...
- UE4新手之编程指南
虚幻引擎4为程序员提供了两套工具集,可共同使用来加速开发的工作流程. 新的游戏类.Slate和Canvas用户接口元素以及编辑器功能可以使用C++语言来编写,并且在使用Visual Studio 或 ...
随机推荐
- PageOffice 在线打开 word 文件实现痕迹保留、键盘批注、手写批注
一.痕迹保留 Word中的痕迹一般指的是审阅文档的用户对文档所做的修改(插入和删除)操作.在PageOffice的强制留痕模式下,用户对文档所做的任何修改都会以痕迹的形式保留下来,不同用户对文档做的修 ...
- 安装 MySQL ZIP 版本
安装 MySQL 的 ZIP 版本相对于安装包版本稍微复杂一些,因为它需要手动解压和配置.以下是在 Windows 上安装 MySQL ZIP 版本的步骤: 下载 MySQL ZIP 文件: 前往 M ...
- C# 炸弹人 winform版
实现这个游戏的基本功能包含几个对象:玩家,怪物,墙砖,炸弹,通关的门.玩家通过上下左右方向键移动,放置炸弹,被怪物杀死,被炸弹炸死.怪物随机方向移动,能杀死玩家.炸弹有爆炸功能,炸弹的火花长度.通过的 ...
- 轻松绕过 Graphql 接口爬取有米有数的商品数据
轻松绕过 Graphql 接口爬取有米有数的商品数据 有米有数数据的 API 接口,使用的是一种 API 查询语言 graphql.所有的 API 只有一个入口,具体的操作隐藏在请求数据体里面传输. ...
- Sed 日常使用介绍
Sed 日常使用介绍 简介 sed 是 unix 环境下常用的流处理工具, 可以处理字符流, 文件或者二进制文件流. 各个 unix/linux 发行版都会配备 sed 及其衍生的命令工具, 因此, ...
- WPF开发快速入门【8】WPF进行简单的3D开发
概述 本文介绍采用WPF进行3D开发的一些基础知识,还有HelixToolkit控件的介绍以及在MVVM模式下使用3D框架. 3D开发入门 官方文档对3D开发的一些基础知识已经描述的比较详细了:三维图 ...
- 8.18考试总结(NOIP模拟43)[第一题·第二题·第三题·第四题]
愿你和重要的人,在来日重逢. 前言 题目名字起的很随意... 这天 Luogu 的运势好像是大凶(忌:打模拟赛,注意报零). 但是考得还不错,拿到了这么多场模拟赛以来第二三个场上AC. 所以说,我爱大 ...
- 拼多多面试:Netty如何解决粘包问题?
粘包和拆包问题也叫做粘包和半包问题,它是指在数据传输时,接收方未能正常读取到一条完整数据的情况(只读取了部分数据,或多读取到了另一条数据的情况)就叫做粘包或拆包问题. 从严格意义上来说,粘包问题和拆包 ...
- BOM弹窗 滚动条
// window.alert('弹出内容') 警告框 // window.prompt('弹出内容') 输入框 // 以 字符串 形式 存储输入 ...
- Linux扩展篇-shell编程(五)-流程控制(二)-case语句
基本语法: case expression in pattern1) statement1 ;; pattern2) statement2 ;; *) statement3 ;; esac 注意事项: ...