Unity播放视频 —— MovieTexture的使用

Unity支持视频作为物体表面的纹理。纹理一般为物体表面的图像。同时Unity支持不同的视频格式,其中视频资源一般会占用较大的存储空间,推荐使用的格式是OGV(Ogg Theora)。

  1. 首先将视频资源导入到Unity的Assets文件夹下。导入后可以在Inspector面板下方进行预览视频。
  2. 然后在Hierarchy面板上创建一个Plane对象作为播放视频纹理的物体。
  3. 为Plane对象添加材质球,在Project面板:右键 > Create > Material,创建Material对象并命名为MovieMaterial,接着在Inspector面板为材质选择Shader为Unlit/Texture,这样MovieTexture在显示过程中不会受到光照的影响,将材质球MovieMaterial赋予Plane对象。
  4. 为Plane对象添加AudioSource组件,用于播放视频纹理发出的声音。
  5. 为Plane对象编写用于加载并播放视频纹理的脚本。
    using UnityEngine;
    using System.Collections;
    
    public class PlayMovie:MonoBehaviour
    {
        // 声明用于获取视频纹理的MovieTexture字段Movie.
        public MovieTexture Movie = null;
        // 声明用于获取视频的音频剪辑的AudioSource.  
        private  AudioSource audios;
        void Start(){
            // 获取PLane对象的MeshRenderer组件.
            MeshRenderer meshrenderer = GetComponent<MeshRenderer>();
            // 将MeshRenderer组件的纹理材质替换为MovieTexture类型的视频.
            meshrenderer.material.mainTexture = Movie;
            audios = GetComponent<AudioSource>();
            // 将MovieTexture的音频剪辑赋值给Audio Source组件的clip
            audios.clip = Movie.audioClip;
            audios.spatialBlend = 0;
        }  
        // 按下空格键进行播放控制.
        void Update(){
            if (Input.GetKeyDown (KeyCode.Space) && !Movie.isPlaying && !audios.isPlaying) {
                Movie.Play ();
                audios.Play ();
            } else if (Input.GetKeyDown(KeyCode.Space) && Movie.isPlaying && audios.isPlaying){
                Movie.Pause ();
                audios.Pause();
            }
        } 
    }

     

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值