Unity中的视频播放

2021-08-04 14:09发布

众所周知现在的游戏都少不了CS开场动画、宣传视频的播放,甚至游戏游戏中还会内嵌游戏直播,所以在游戏中播放视频的技术是以为游戏开发必不可少的技术。本文章就带大家快速上手游戏中的视频播放技术。

在Unity中播放视频需要两个组件, 一、播放视频画面的组件--VideoPlayer;二、播放视频声音的组件--AudioSource; 将两个组件结合起来才能完美的播放视频!!

VideoPlayer组件是在Unity5.6以后才增加的新的组件, 在Unity5.6以前都是使用的其他方式播放视频, 在实用性和兼容性方面VideoPlayer都有很大的提升。

VideoPlayer分为两种播放模式, 一是网络视频播放模式(URL),一是本地视频播放模式(Video Clip);具体使用哪种模式需要在VideoPlayer组件中的Source属性中设置,选择好对应的模式后,设置对应的视频。如果是网络视频,则设置视频的URL地址;如果是本地视频,则讲本地需要播放的视频赋值给VideoClip属性。 下面给大家介绍一些常用的属性:

Play On Awake : 脚本载入时自动播放。

Wait For first Frame : 决定是否等待第一帧加载完后才播放

Loop : 是否循环播放

Playback Speed : 视频的播放速率

Render Mode : 视频画面的渲染模式

Audio Output Mode : 视频声音的输出模式

在以上常用属性中, 特别需要注意的是Render Mode和Audio Output Mode,一个决定了视频画面在哪里播放, 一个决定着声音怎么样播放;

Render Mode 常用的有四个值, 分别功能为:

Camera Far Plane : 基于摄像机的渲染,   视频画面在摄像机的远平面上

Camera Far Near  : 基于摄像机的渲染,   视频画面在摄像机的近平面上

Render Texture : 将视频画面保存在RenderTexture上, 一般基于UGUI的播放器会使用他。

Material Override : 将视频画面复制给所选Render的Material。需要选择具有Render组件的物体,可以选择赋值的材质属性。、

以上四种方式各有特点, 如果想作为背景视频则使用Camera Far Plane模式, 如果想实现播放器的效果就是用RenderTexture,如果想在物体上播放则使用Material Override等等,应用场景不同,选择的模式则不同。

上面是VideoPlayer视频播放组件的介绍, 下面我们来说说AudioSource, AudioSource是一个专门用于播放声音的组件, 可以单独使用, 也可以配合VideoPlayer来播放视频声音。AudioSource只能播放本地声音, 不能实现网络声音资源的播放。

 

下面简单给大家介绍一下AudioSource的一下常用属性;

AudioClip:声音资源

Mute:  是否静音

Play On Awake: 脚本载入时自动播放

Loop:   是否循环播放

Volume:   声音的音量

Pitch:  声音播放的倍率

Stereo Pan :  左右声道

Spatial Blend:  空间混合模式, 即2D/3D

 

学会上面两个组件后, 接下来带大家通过四步, 快速实现视频播放效果。

1、先在Hierarchy下,新建一个Plane, 设置对应的缩放。

2、为Plane添加创建新的Material, 并设置。

3、直接将本地视频文件拖拽到Plane上, Unity将自动为Plane添加VideoPlayer组件并进行了相关的设置。

4、为Plane添加AudioSource组件, 并将AudioSource组件设置为VideoPlayer组件AudioSource属性的值。

通过以上四步, 运行即可播放我们添加的视频。以上四步中其实就是利用了VideoPlayer组件和AudioSource组件结合的方式实现了视频的播放, 而视频的画面是呈现在Plane上的, 也就是使用了VideoPlayer中的RenderMode的Material Override模式,但是当然这些设置都是Unity根据我们的操作自动设置好的。如果还需要更为精细则需要进一步的对属性进行针对的设置。

经过上述介绍,想必大家对在Unity中如何使用策划制作的数据已经有了一定的了解,那么接下来大家就可以尽情的发挥你的想象和实力。