unity5.2播放本地视频(PC端)

从unity升级到5.0后一直没有研究过unity的播放视频问题。最近需要研究这个方面的问题,我会连续更新视频相关的博文。

首先说unity所支持的视频格式有:.mov .mpg .mpeg .mp4 .avi 和.asf

将视频文件拖拽到project视图中,系统会自动生成电影纹理资源

 

首先说如何播放本地视频(仅pc端可用);具体操作:

在unity5.2里(据说是5.0以上版本,我测试版本为5.2)如果直接拖一个视频(该视频为符合unity支持的视频)到project里是视频会显示白色的,这样是无法播放的。

 

并且unity会提示缺少QuickTime Player的错误。解决方法很简单只要把这个视频用QuickTime Player(这个是苹果公司的一个播放器工具)这个工具播放一次然后再拖动到项目里,如果拖动一次不成功就关闭unity然后再打开再拖进去,这样你会看到被拖进去的视频不再是白色的而是变了样子,如下:

 

 

 

这样就说明这个视频是可以播放的了。

 

然后建立一个cube把cube放到相机适合的位置,拉伸成你想要的比例或者代码定义你想要的长宽高等,如下图:

(用UGUI中的Raw Image,加上meshrender组件和声音组件也可以实现该功能。2D还是3D根据自己需求来呗)

 

 

上图中可以看到我的在上面挂载了一个脚本,脚本内容具体如下:

 

using UnityEngine;
using System.Collections;
using UnityEngine.Audio;
using UnityEngine.UI;
public class testplaymovie : MonoBehaviour {
    public MovieTexture movietexture;
    private MeshRenderer mr;
   
	// Use this for initialization
	void Start () {
        mr = GetComponent<MeshRenderer>();
        mr.material.mainTexture = movietexture;
        movietexture.loop = true;
	}	

    void OnGUI()
    {
        if (GUILayout.Button("播放/继续"))
        {
            //播放/继续播放视频    
            if (!movietexture.isPlaying)
            {
                movietexture.Play();
               // audio.Play();
            }
        }

        if (GUILayout.Button("暂停播放"))
        {
            //暂停播放    
            movietexture.Pause();
           // audio.Pause();
        }

        if (GUILayout.Button("停止播放"))
        {
            //停止播放    
            movietexture.Stop();
           // audio.Stop();
        }
    }
}


在代码中可以看到我注释掉了声音的代码,因为我发现只要勾选了play on awake的选项,声音会跟着视频播放和暂停。完全不用代码再去控制,也许是unity5.0以上版本变的牛逼了。

 

通过以上的方法就可以播放出本地的视频了。这里我用的是gui的方法控制的,当然也可以用ugui控制按钮交互。。。效果如下:

这样就搞定了unity5.2本地视频的播放。之后我会研究并更新更多有关unity视频的博客。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值