Unity3D 关于视频播放

Unity视频播放
相信大家在平时的游戏开发中,会遇到视频播放的问题。
这次在一个剧情冒险的游戏开发过程中,我用了两种解决方法:

第一种适用于ui层播放
第二种适用于游戏物体播放,用摄像机对准就好啦

1.利用UGUI的RawImage
在这里插入图片描述
我们在ui下创建rawimage,在右侧面板中加入video PLayer组件,将你导入的视频改为video clip类型,拖入rawimage的clip中,再给物体挂一个audioSource,将audiosource组件拖入videoPlayer的音轨中。

然后我们再挂一个脚本,让videoplayer的每帧贴图都赋给rawimage的贴图。
代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;

public class audioPlay : MonoBehaviour {

    private VideoPlayer videoPlayer;

    private RawImage rawImage;

   
    

    // Use this for initialization

    void Start()
    {

        //获取场景中对应的组件

        videoPlayer = this.GetComponent<VideoPlayer>();

        rawImage = this.GetComponent<RawImage>();



        Invoke("colorChange", 1.5f);
        Invoke("videoChange", 1f);

    }



    // Update is called once per frame

    void Update()
    {

        //如果videoPlayer没有对应的视频texture,则返回

        if (videoPlayer.texture == null)
        {
            return;
        }
        else
        {
           
            rawImage.texture = videoPlayer.texture;
        }

        //把VideoPlayerd的视频渲染到UGUI的RawImage

        

    }

    void colorChange()
    {
        rawImage.color = Color.white;
        
    }


    void videoChange()
    {
        videoPlayer.Play();
    }

   
}

使用这个方法,在加载视频的时候,videoplayer在播放的时候,视频还没开始渲染,所以一开始会有显示背景色的现象。
我暂时没有办法在其他方面解决这个问题。
只能在视频本身上下功夫,我一般会加一个纯色渐变片头,多建一个rawimage颜色和片头一样,这样视频开始播放前就不会显示别的背景啦。

2.利用movieTexture
这种方法就是新建物体,将纹理改为视频纹理就好啦。

猜你喜欢

转载自blog.csdn.net/weixin_42927264/article/details/88096172