前言
每一款游戏往往启动的第一次都会播放CG动画之类的,Unity本身对于移动平台也提供了一个接口。
Handheld.PlayFullScreenMovie("path")
过场动画都会有点击跳过的功能,所以通常会这么调用。
Handheld.PlayFullScreenMovie("path",FullScreenMovieControlMode.CancelOnInput)
然后再在游戏界面留个按钮什么的,方便玩家重复观看,一般需求到这就差不多了。
但是策划不满足,比如他想要类似下面的非全屏UI窗口效果,甚至还要在视频上显示其他UI (Handheld.Play实际上是切出游戏进程了)。
之前想着用MovieTexture做一下,不过MovieTexture不支持移动平台。
不过还好Unity在5.6后有了支持多平台的VideoPlayer。
正文
直接进入正题
我们先在空场景里创建一个RawImage
再创建一个RenderTexture命名为Movie,大小设置为720p
接下来在创建好的RawImage上挂载一个VideoPlayer脚本,Render Mode选择Render Texture。然后将Movie命名的RenderTexure和视频来源设置好,这里为了方便我直接用URL视频链接。
注意 : VideoPlayer能够播放的视频格式为你的设备内置播放器能够播放的格式 (通常为 .mov, .mpg, .mpeg, .mp4, .avi, .asf等格式)
最后点击运行,就可以看到视频了。
不过这时候的视频是没声音的,所以我们需要给这个RawImage再挂上一个AudioSource组件,将VideoPlayer的Controlled Tracks属性设置为1,然后将AudioSource拖拽进去。
这时候再重新运行就能听到视频的声音了。
另外如果想弄成窗口什么的也就可以按UGUI那一套来了。
参考资料