目录
一:3D载体播放
二:UI载体播放
三:全屏Camera播放
四:代码控制
参考官方api:https://docs.unity3d.com/ScriptReference/Video.VideoPlayer.html
工程:https://download.csdn.net/download/qq_37310110/72538447
一:3D载体播放
优点:制作简单,通过材质输出视频
缺点:不能自适应视频源的分辨率,需要手动修改模型尺寸,模型材质影响视频效果
1.制作屏幕,创建plane或者cube都行
2.在载体上添加VideoPlayer组件
3.导入视频赋值videoClip视频源
4.运行即可播放
二:UI载体播放
优点:可以自适应视频源的分辨率,可以自定义在屏幕显示的范围和位置
缺点:制作稍微麻烦
1.创建屏幕载体 rawImage组件
2.在rowImage上添加videoplayer组件
3.创建RenderTexture
4.导入视频赋值videoClip视频源,
5.赋值rawImage上的RenderTexture,赋值VideoPlayer上的RenderTexture
6.运行播放
三:全屏Camera播放
优点:可以全屏播放,可以层级选择
缺点:不能随意调整大小位置
1.给相机或者随便一个对象添加VideoPlayer组件
2.导入视频源赋值videoClip
3.设置RenderMode为 CameraFarPlane或者NearPlane
4.运行播放
四:代码控制
{
// 将VideoPlayer附加到主摄像头。
GameObject camera = GameObject.Find ("主摄像机");
// VideoPlayer添加时自动瞄准相机背板
// 到一个摄像头对象,不需要更改 videoPlayer.targetCamera.
var videoPlayer = camera.AddComponent();
// 唤醒时播放默认为 true。将其设置为 false 以避免设置 url
// 下面来自动开始播放,因为我们在 Start() 中。
videoPlayer.playOnAwake = false;
// 默认情况下,添加到相机的视频播放器将使用远平面。
// 让我们以近平面为目标。
videoPlayer.renderMode = UnityEngine.Video.VideoRenderMode.CameraNearPlane;
// 这将使我们的场景通过正在播放的视频可见。
videoPlayer.targetCameraAlpha = 0.5F;
// 设置要播放的视频。URL 支持本地绝对或相对路径。
// 这里,使用绝对。
videoPlayer.url = "/Users/graham/movie.mov";
// 跳过前 100 帧。
videoPlayer.frame = 100;
// 完成后从头开始。
videoPlayer.isLooping = true;
// 每次到达终点时,我们将播放速度减慢 10 倍。
videoPlayer.loopPointReached += EndReached;
// 开始播放。这意味着VideoPlayer可能必须准备(保留
// 资源,预加载几帧等)。为了更好地控制延迟
// 与此准备相关的人可以使用 videoPlayer.Prepare() 以及
// 它的 prepareCompleted 事件。
videoPlayer.Play();
}
void EndReached(UnityEngine.Video.VideoPlayer vp)
{
vp.playbackSpeed = vp.playbackSpeed / 10.0F;
}
欢迎加入Unity业内qq交流群:956187480



