【Unity 实战篇】Renderstreaming 云渲染方案

前言

大家好,我是Mark。 趁放假有时间记录一下最近在研究的云渲染解决方案,看了几家云渲染厂商收费都不便宜呐秉着没钱还要实现效果的目的。最终目标锁定到 Unity 的 Renderstreaming 看文档应该是19年出来的,话不多说开搞

官方文档:Unity Render Streaming GitHub项目:GitHub-UnityRenderStreaming

一、最终效果

PC端渲染画面 re.gif 移动端渲染画面 image.png|700

二、安装 WebServer

Release 3.1.0-exp.7 · Unity-Technologies/UnityRenderStreaming (github.com) 上述链接为官方提供的 WebServer,根据自己的系统下载对应的 image.png|700 下载完成双击运行即可 image.png|700 如果端口被占用或想更改为其它端口可以通过cmd来实现指定端口启动

  1. Win+R 输入cmd 回车
  2. cd C:\xxx\xxx 或 通过在文件栏中输入 cmd 回车实现同样效果(跳转到存放 webserver.exe 的文件夹下)
  3. webserver.exe -p 8088 (将8088端口用作参数传递 WebServer 回车启动服务)

image.png|700 image.png|700


当然,如果你想编译自己的 WebServer 也是可以的,但在这之前你可能需要检查自己的电脑看是否有 Node.js 你可以使用上文中提到的 cmd 命令来检查

  1. node -v (如果你已经安装了 Node.js,这个命令将显示你安装的 Node.js 版本号)
  2. 如果你没有看到 Node.js 版本号,你可以从 Node.js 官方网站下载并安装它 Node.js
  3. 安装 Node.js 后,你可以通过再次运行 node -v 来验证安装是否成功

完成后上述操作后你还需要将上文中提到的 [源码](Release 3.1.0-exp.7 · Unity-Technologies/UnityRenderStreaming (github.com)) 下载并解压。解压后找到文件夹中的 WebAPP ,同样你需要使用 cmd 命令指向该文件夹。在正式编译之前你还需要安装一些依赖

  1. 输入 npm install 安装依赖(如果安装太慢可以考虑使用国内镜像 npm config set registry http://mirrors.cloud.tencent.com/npm/
  2. 如果替换了镜像地址需要再执行一次 npm install (如果安装成功则可忽略这步)
  3. 输入 npm run build 构建 WebServer
  4. 输入 npm run start 启动 WebServer

image.png|700 如果没问题就可以使用 npm run pack 打包成 exe 文件下次启动服务就能方便很多了 image.png|700

三、安装 RenderStreaming

导航栏 -> Window -> Package Manager image.png|700 点击 按钮,选择下方菜单中的 Add package by name... 按钮 image.png|700com.unity.renderstreaming 填入Name输入框中,点击 Add 按钮等待下载导入… image.png|700 导入结束会提示需要用到新版输入系统,点击 Yes 等待Unity重启… image.png|700 重启后会弹出配置窗口,点击 Fix All 等待设置完成。设置完成后默认所有选项都会被打上绿色勾,如果有设置未成功则会有错误信息。(一般不会出现什么错误) image.png|700 image.png|700

四、配置 RenderStreaming

在任意场景下新建空物体命名为(该命名可随意)UnityRenderStreaming 选中 UnityRenderStreaming 物体在 Inspector 面板中点击 Add Component 按钮,给该物体添加SignalingManager Broadcast  VideoStreamSender 脚本,如果有音频的需求则添加  AudioStreamSender 脚本 image.png|700 设置脚本参数如下 image.png|700

五、运行测试

完成上述操作后启动,启动 WebServer 然后运行 Unity 。并打开浏览器输入地址 127.0.0.1:8088 端口根据自身设置输入,笔者在启动服务时设置的端口为 8088 。打开浏览器后点击 Receiver Sample 进入渲染流网页 image.png|700 点击页面的播放按钮,如果你没有改 WebServer 的端口则会看到 Unity 的画面已经被成功渲染到网页端了 image.png|700 image.png|700 如果你更改了 WebServer 的端口则需要在 Unity 中进行其它设置,找到添加脚本的物体并在Inspector 面板中点击 Open Project Settings 按钮 image.png|700 在设置面板中点击 Create New Settings Asset 按钮,创建新的配置文件。并给 URL 输入框中的链接后方加上修改后的端口。之后保存并重新运行 Unity ,再次刷新网页就能看到云渲染效果咯~ image.png|700 image.png|700 如果你想让其它人也可以看,需要确保你们处于同一个局域网下。对方使用你局域网下的 IP+端口就能访问你渲染的画面了(查看IP的方法也提供给大家,使用 cmd 输入ipconfig 回车就能看到详情) image.png|700 image.png

六、外网访问

外网访问可参考官方文档 Setting for TURN Servers | Unity Render Streaming

七、问题

Q:画面畸变 image.png A:打包时分辨率需要和Streaming Size中的一致,如果是编辑器则需要调整 Game 视图下的分辨率 image.png

八、结束

结束

对你有帮助的话可以点赞、关注、收藏,有问题评论区见哈~

原创不易,若转载请注明出处,感谢大家~

Logo © 2025 Mark All Rights Reserved. 陕ICP备2025083152号