如何在网页中嵌入UE/Unity/WebGL程序,并与网页端通信

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
可观测可视化 Grafana 版,10个用户账号 1个月
简介: LarkXR实时云渲染平台,为UE数字孪生提供的产品化、平台化功能模块,以及必备的二次开发能力。

在数字孪生可视化场景中,UE开发的高精度大场景程序,通常需要与前端网页通信实现数据的传递,并且经过Web化后,更需要与已有业务系统进行对接。像素流提供了Web化的一种技术实现方式,但是在实际项目交付过程中,存在数据通信不畅、与系统对接和二次开发能力有限等诸多限制。商业化实时云渲染产品,将行业通用需求封装成功能组件,供开发者调用。
以LarkXR实时云渲染平台为例,初步介绍如何在网页中嵌入UE引擎三维场景,并与网页端通信。

1. 3D应用数据通道

数据通道功能组件是用来实现客户端与应用之间的双向通信的,在数字孪生、展览展示、元宇宙等场景中应用非常广泛。图示为绿色双向箭头,代表在我们云端与客户端之间的虚拟通道,为三维应用建立快速通道。在这里,我们云端处理高帧率、高清晰度的三维应用,客户端处理业务流程及其他渲染。
数据通道1.png

使用本功能前,请确保授权码已开通“数据通道”权限。演示链接如下:https://www.pingxingyun.com:8035/
数据通道2.png

使用步骤:

  1. 集成数据通道到应用

【注意】如出现UE开发应用使用数据通道组件,由应用向客户端传递字符串缺失问题时,注意需要进行utf-8编码。


int UPXYComponent::PXY_Client_SendText(FString SendData)
{
   
int sendsize;
std::string MyStdString(TCHAR_TO_UTF8(*SendData));
sendsize = lr_client_send(DATA_STRING, MyStdString.c_str(), MyStdString.size());
return sendsize;
}

2. WebGL数据通道

将LarkXR升级到V3.3.2.6及以上版本,就可以使用WebGL数据通道功能组件。步骤分为:

2.1 初始化数据通道

在WebGL页面加载完成后,需要初始化数据通道。此函数会调用 window.larkxr_dc_init() 方法,完成数据通道的初始化。

2.2 接收文本数据

当用户端页面发送文本数据时,页面会调用 onDcTxtData 函数。此函数会将接收到的文本数据显示在WebGL页面上的指定 div 元素中。

2.3 接收TaskId

当数据通道连通,WebGL页面会调用 onTaskStatus 函数。此函数会接收到TaskId参数。

2.4 发送消息到用户端页面

WebGL页面上有一个按钮,点击该按钮会调用 larkxr_dc_send 函数,将消息发送到用户端页面。以下是页面的WebGL HTML 结构 Demo:


 <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>LarkXR Data Channel Example</title>
        <style>
            .fixed-size-div {
   
                width: 100px;
                height: 100px;
                background-color: lightblue;
                display: flex;
                justify-content: center;
                align-items: center;
                font-size: 14px;
            }
        </style>
    </head>
    <body>
        <h1>LarkXR Data Channel Example</h1>
        <button onclick="larkxr_dc_send('Hello from WebGL page!')">发送消息"Hello from WebGL page!"到用户端页面</button>
        <div class="fixed-size-div">This is the target div,接收用户端页面发送的数据:
            <span id="targetDiv"></span>
        </div>
        <script>
            // 初始化数据通道
            function larkxr_init() {
   
                console.log("Data Channel Initialized");
                window.larkxr_dc_init();
            }

            // 接收用户端页面发送的文本数据
            function onDcTxtData(data) {
   
                console.log("Received text data from user end:", data);
                // 获取目标 div 元素
                const targetDiv = document.getElementById('targetDiv');
                // 将参数值赋值给 div 的 innerText
                targetDiv.innerText = data;
            }

            // 接收当前的taskId
            function onTaskStatus(taskId) {
   
                console.log("Received task status with taskId:", taskId);
            }

            // 页面加载完成后调用初始化函数
            window.onload = function () {
   
                larkxr_init();
            };
        </script>
    </body>
    </html>

2.5 实现WebGL数据通道

1. WebGL 页面地址设置到 LarkXR

根据 LarkSR 帮助手册 3.3,添加 WebGL 程序。在手册中找到相关章节,按照说明填写 WebGL 页面的地址。

2. 使用 WebSDK 实现数据通道

相关文章
|
8月前
|
图形学
Unity 打开内嵌网页
要使用Embedded Browser插件实现网页嵌入功能,首先需下载插件(可从商店或指定地址获取)。安装后,通过将HTML文件放入BrowserAssets文件夹并修改URL前缀为`localGame://`来快速加载本地页面。设置时,在导入的BrowserGUI预设中配置URL即可。此外,可通过编写脚本添加按钮点击事件打开指定网页,并调整浏览器缩放比例。插件下载地址:https://download.csdn.net/download/qq_42603590/13958459。
|
API 开发工具 vr&ar
PicoVR Unity SDK⭐️一、SDK下载、项目设置与程序初始配置
PicoVR Unity SDK⭐️一、SDK下载、项目设置与程序初始配置
|
图形学
【unity小技巧】手戳代码程序化绘制地形Terrain树和预制体物品、动物
【unity小技巧】手戳代码程序化绘制地形Terrain树和预制体物品、动物
283 0
|
图形学
【用unity实现100个游戏之16】Unity中程序化生成的2D地牢4(附项目源码)
【用unity实现100个游戏之16】Unity中程序化生成的2D地牢4(附项目源码)
176 0
|
算法 图形学
【用unity实现100个游戏之16】Unity程序化生成随机2D地牢游戏3(附项目源码)
【用unity实现100个游戏之16】Unity程序化生成随机2D地牢游戏3(附项目源码)
404 0
|
自然语言处理 图形学
【用unity实现100个游戏之16】Unity程序化生成随机2D地牢游戏2(附项目源码)
【用unity实现100个游戏之16】Unity程序化生成随机2D地牢游戏2(附项目源码)
186 0
|
算法 数据可视化 定位技术
【用unity实现100个游戏之16】Unity程序化生成随机2D地牢游戏1(附项目源码)
【用unity实现100个游戏之16】Unity程序化生成随机2D地牢游戏1(附项目源码)
278 0
|
26天前
|
机器学习/深度学习 人工智能 图形学
卓伊凡的第一款独立游戏-详细介绍游戏开发引擎unity-以及详细介绍windows和mac的安装步骤【01】
卓伊凡的第一款独立游戏-详细介绍游戏开发引擎unity-以及详细介绍windows和mac的安装步骤【01】
116 9
|
26天前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。