前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UE4 PixelStreaming与UE4之间的通讯笔记

UE4 PixelStreaming与UE4之间的通讯笔记

作者头像
Ning@
发布2021-11-10 15:17:38
2.4K0
发布2021-11-10 15:17:38
举报
文章被收录于专栏:烤包子烤包子

JS向UE4发送事件

app.js文件提供了两个JavaScript函数,您可以在HTML播放器页面中调用它们,以允许用户将事件和命令从浏览器发送到Unreal Engine应用程序:

  • emitCommand 可以向游戏发送预设的命令列表,以更改分辨率,执行控制台命令或降低编码器的比特率。请参阅下面的使用emitCommand函数
  • emitUIInteraction 将任意字符串或JavaScript对象发送到游戏。使用此功能可以从玩家UI发送自己的自定义命令,您可以在游戏逻辑中进行响应以在应用程序中产生所需的任何效果。请参阅下面的使用emitUIInteraction函数

使用emitCommand函数

调用该emitCommand 函数时,必须向其传递一个JavaScript对象。该对象必须包含与以下字符串之一匹配的键:

使用emitUIInteraction函数

调用该emitUIInteraction 函数时,可以向其传递单个字符串或JavaScript对象。例如:

代码语言:javascript
复制
emitUIInteraction("MyCustomCommand");

或者

代码语言:javascript
复制
let descriptor = {
    LoadLevel: "/Game/Maps/Level_2"
    PlayerCharacter: {
        Name: "Shinbi"
        Skin: "Dynasty"
    }
}
emitUIInteraction(descriptor);

UE4接收并解析JS发送的蓝图:

您需要绑定一次此事件,通常是在游戏开始时。每当连接到您的虚幻引擎应用程序实例的任何播放器HTML页面调用该emitUIInteraction函数时,无论传递到的输入如何,都会自动调用您的自定义事件emitUIInteraction

您分配的自定义事件(例如,上图中的UI Interaction节点)具有一个名为Descriptor的输出,您可以使用该输出检索该emitUIInteraction 函数发送给您的Unreal Engine应用程序的字符串。您可以使用该值来确定每次emitUIInteraction 调用游戏代码时需要如何响应。

例如,以下蓝图测试以查看给定的输入是否emitUIInteraction 包含字符串“ MyCustomCommand”,并调用自定义函数来处理事件:

Get Json String Value节点中,Filed Name参数可以获取对象中的对象值;

UE4向JS发送事件

蓝图

JS中增加方法:

代码语言:javascript
复制
function myHandleResponseFunction(data) {
    console.warn("Response received!");
    switch (data) {
        case "MyCustomEvent":
            ... // handle one type of event
        case "AnotherEvent":
            ... // handle another event
    }
}

通过调用addResponseEventListener 提供的函数来注册您的侦听器函数app.js。您为该函数传递事件侦听器和函数的唯一名称。例如:

代码语言:javascript
复制
addResponseEventListener("handle_responses", myHandleResponseFunction);

如果您需要删除事件监听器,请调用removeResponseEventListener 并传递相同的名称。例如:

代码语言:javascript
复制
removeResponseEventListener("handle_responses");

如果要传递更复杂的数据,可以将传递给“ 发送像素流响应”节点的字符串格式化为JSON。例如:

然后,在JavaScript事件处理程序函数中,使用  JSON.parse(data)将该字符串解码回JavaScript对象。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JS向UE4发送事件
  • 使用emitCommand函数
  • 使用emitUIInteraction函数
  • UE4向JS发送事件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档