栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > Unity3D

【Unity开发小技巧】Unity播放视频的几种方式

Unity3D 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Unity开发小技巧】Unity播放视频的几种方式

目录

一: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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/901028.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号