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

来源:互联网 发布:马哥2014linux视频 编辑:程序博客网 时间:2024/06/06 05:23

从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的planel代替cube作为视频的播放器,然而我测试过是不行的,也许是方法不对,希望看到此博客的大大不吝赐教。目前我只能用我的方法来实现功能。)




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

using UnityEngine;using System.Collections;using UnityEngine.Audio;using UnityEngine.UI;public class testplaymovie : MonoBehaviour {    public MovieTexture movietexture;    private MeshRenderer mr;   // Use this for initializationvoid 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视频的博客。

0 0
原创粉丝点击