Unity3d游戏画面实时同步html5或WebGL中(基于FMETP STREAM)

一、准备画面发送端

1.新建unity3d工程(这里的版本为Unity3d2018.4.14),导入FMETP STREAM插件。

2.在场景创建空实体FMSocketIOManager,添加FMSocketIOManager组件,将Networktype设为Server

3.在场景创建空实体GameViewEncoder,添加GameViewEncoder组件

4.选中Main Camera右键选择【Duplicate】,将Main Camera复制一个,将新的实体命名为RenderCam,将Depth改为-2。

5.再次选中GameViewEncoder实体,将RenderCam拖到GameViewEncoder组件的RenderCam属性中。

6.在GameViewEncoder组件的OnDataByteReadyEvent(Byte[])事件中,点击加号添加事件,将FMSocketIOManager拖入None(Object)中,函数选择FMSocketIOManager.SendToOthers(注意别选错函数)。

7.在场景随意创建一个Cube,任意旋转缩放,确何在RenderCam中可以看得见即可。

 

二、准备画面接收端

1.官网下载node.js,下载后双击安装文件,选择自动安装工具,其余都点下一步即可。

2.在开始菜单中选择【Node.js command prompt】,可以看到命令行指向了某个路径(这里为C:\Users\wslng,后面将需要执行的js文件放这个路径下或子目录下)

3.将FMETP STREAM插件包中的压缩文件TestServer_v1.2.zip(位于Unity工程的Assets\FM_ExhibitionToolPack\FMWebSocket目录下)解压到C:\Users\wslng(注意!一定要同上面命令行中的路径一样),不要在Unity工程的Assets目录下解压,执行以下命令

cd TestServer_v1.2
npm init -f
npm install socket.io express --save
node index.js

三、画面同步到html5网页中

1.运行Unity工程

2.在浏览器输入http://localhost:3000,在网页中点击【Connect】,即可看在同一网页的下方到Unity工程中的实时画面。

四、画面同步到客户端

1.新建unity3d工程,导入FMETP STREAM插件。
2.在场景创建空实体FMSocketIOManager,添加FMSocketIOManager组件,将Networktype设为Client。


3.在场景创建空实体GameViewDecoder,添加GameViewDecoder组件。


4.打开Windows附件中的画图程序,调整大小为256*256,保存白色图像为texture.png,将图片放入Assets中。


5.选中GameViewDecoder,将texture.png拖入GameViewDecoder组件中的ReceivedTexture。


6.在Cavas下创建RawImage,将texture.png拖入RawImage组件中的Texture。


7.选中FMSocketIOManager,在FMSocketIOManager组件的OnReceivedByteDataEvent(Byte[])中添加事件,拖入GameViewDecoder,选事GameViewDecoder.Action_ProcessImageData事件。

8.运行本程序(运行程序前,请确保index.js和服务器已启动),可以看到FMSocketIOManager实体上还附加了一个SocketIOComponent组件,里边有IP地址和端口。

五、总体执行顺序

1.node index.js

2.启动服务端.

3.打开客户端、浏览器网页、WebGL端

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值