最近的项目中,可能会用webrtc跟Unity的结合,那就先研究一下webrtc怎样玩呗。那就找找看看有没有开源的的项目可以进行借鉴。

幸得Unity官方自己出了一个Unity结合Webrtc的开源项目com.unity.webrtc,这个项目可以在Package Manager直接进行安装。那我就安装好完一下例子呗。

1、首先创建一个工程,在Package Manager 的Advanced中首选勾选上Show preview packages,否则你查询不断webrtc

2、安装webrtc,我们安装最新版本2.4.0-exp.2,我需要在android手机上运行,所以需要比较高的版本。

3、安装完成之后,我们导入Examples,还是在webrtc的安装界面,在右下角点击Import into Project,就可以把Example导入Assets中了。我们就可以跑案例了。

4、在PC机上跑案例,我们打开MultiplePeerConnections场景,运行,就很正常的运行了。

5、但是我安装到手机上,会报错,看起来是找不到webrtc的库。咋解决呢?

2021/05/25 17:19:57.535 9832 20091 Error Unity Unable to find webrtc
2021/05/25 17:19:57.565 9832 20091 Error Unity DllNotFoundException: webrtc
2021/05/25 17:19:57.565 9832 20091 Error Unity at (wrapper managed-to-native) Unity.WebRTC.NativeMethods.RegisterDebugLog(Unity.WebRTC.DelegateDebugLog)
2021/05/25 17:19:57.565 9832 20091 Error Unity at Unity.WebRTC.WebRTC.Initialize (Unity.WebRTC.EncoderType type) [0x0007f] in D:\work\unity\1111111\Library\PackageCache\com.unity.webrtc@2.4.0-exp.1\Runtime\Scripts\WebRTC.cs:333
2021/05/25 17:19:57.565 9832 20091 Error Unity at MultiplePeerConnectionsSample.Awake () [0x00001] in D:\work\unity\1111111\Assets\Samples\WebRTC\2.4.0-exp.1\Example\MultiplePeerConnections\MultiplePeerConnectionsSample.cs:31
2021/05/25 17:19:57.565 9832 20091 Error Unity
2021/05/25 17:19:57.565 9832 20091 Error Unity (Filename: D Line: 0)

6、经过咨询与自己摸索定位,查看了android webrtc库的编译发现,webrtc只支持ARM64。所以需要进行配置,Build Settings->Android->Player Settings->Player->Other Settings,找到Scripting Backend,把Mono更改为IL2CPP, ARM64勾选上。然后在编译到android手机上,就可以正常运行了。当然在配置之前,先Switch Platform一下,否则你无法配置。

com.unity.webrtc刚刚支持android手机,可能有些机型运行不了,我在Huawei P40 pro上以及一台三星手机上都可以运行。

最后

Unity自己开发配合webrtc使用的一套流式的远程渲染服务,并进行了开源叫Unity Render StreamingUnity Render Streaming当前的版本还没有支持Android手机,又需要折腾一下,下篇博客重点介绍一下Unity Render Streaming的使用。请继续关注。

Logo

致力于链接即构和开发者,提供实时互动和元宇宙领域的前沿洞察、技术分享和丰富的开发者活动,共建实时互动世界。

更多推荐