Unity3D学习(十):使用VideoPlayer在UI上播放视频

时间:2021-06-08 09:27:38

前言

每一款游戏往往启动的第一次都会播放CG动画之类的,Unity本身对于移动平台也提供了一个接口。

Handheld.PlayFullScreenMovie("path")

过场动画都会有点击跳过的功能,所以通常会这么调用。

Handheld.PlayFullScreenMovie("path",FullScreenMovieControlMode.CancelOnInput) 

然后再在游戏界面留个按钮什么的,方便玩家重复观看,一般需求到这就差不多了。

但是策划不满足,比如他想要类似下面的非全屏UI窗口效果,甚至还要在视频上显示其他UI (Handheld.Play实际上是切出游戏进程了)。

Unity3D学习(十):使用VideoPlayer在UI上播放视频

之前想着用MovieTexture做一下,不过MovieTexture不支持移动平台。

不过还好Unity在5.6后有了支持多平台的VideoPlayer

正文

直接进入正题

我们先在空场景里创建一个RawImage

Unity3D学习(十):使用VideoPlayer在UI上播放视频

再创建一个RenderTexture命名为Movie,大小设置为720p

 Unity3D学习(十):使用VideoPlayer在UI上播放视频

接下来在创建好的RawImage上挂载一个VideoPlayer脚本,Render Mode选择Render Texture。然后将Movie命名的RenderTexure和视频来源设置好,这里为了方便我直接用URL视频链接。

注意 : VideoPlayer能够播放的视频格式为你的设备内置播放器能够播放的格式 (通常为 .mov, .mpg, .mpeg, .mp4, .avi, .asf等格式)

Unity3D学习(十):使用VideoPlayer在UI上播放视频

最后点击运行,就可以看到视频了。

Unity3D学习(十):使用VideoPlayer在UI上播放视频

 不过这时候的视频是没声音的,所以我们需要给这个RawImage再挂上一个AudioSource组件,将VideoPlayerControlled Tracks属性设置为1,然后将AudioSource拖拽进去。

Unity3D学习(十):使用VideoPlayer在UI上播放视频

这时候再重新运行就能听到视频的声音了。

另外如果想弄成窗口什么的也就可以按UGUI那一套来了。

Unity3D学习(十):使用VideoPlayer在UI上播放视频

参考资料

 官方文档