贴出源码;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class play : MonoBehaviour {
public MovieTexture movieTexture;//请将你要播放的视频文件(.mov、.mpg、.mpeg、.mp4、.avi和.asf)(需要安装QuickTime软件)直接拖到脚本上。
private Renderer rend;
private AudioSource audio;
// Use this for initialization
void Start () {
//设置当前对象的主纹理为电影纹理
rend = GetComponent<Renderer>();
audio = GetComponent<AudioSource>();
rend.material.mainTexture = movieTexture;
//设置电影纹理播放模式为循环
movieTexture.loop = true;
audio.clip = movieTexture.audioClip;
}
// Update is called once per frame
void Update () {
transform.localScale = new Vector3(3.5f, 1f, 1.2f);//播放的屏幕的大小
}
void OnGUI()
{
if(GUILayout.Button("播放/继续"))
{
if (!movieTexture.isPlaying)
//播放/继续播放视频
{
movieTexture.Play();//播放视频
audio.Play();//播放音频
}
}
if(GUILayout.Button("暂停"))
movieTexture.Pause();
if (GUILayout.Button("停止"))
movieTexture.Pause();
}
}
网上我所参考的博客只说了如何播放视频,但是通过movie.Texture播放的视频不会自带音轨,需要在Plane的Inspector里面加上Audio Source组件然后再start方法里写上
audio = GetComponent<AudioSource>();
audio.clip = movieTexture.audioClip;
audio获取到对象的音频组件,将音轨切成视频里的音轨。
在视频播放的方法里加上audio.Play播放方法。
另外网上的renderer.material.mainTexture=movTexture;
这条代码是错误的,因为5.0版本的renderer需要通过组件获取了,不能直接使用,所以rend = GetComponent<Renderer>()是必须的。