【Unity3D入門教程】Unity3D播放音頻和視頻

前言

在遊戲開發的過程中,我們經常會用到播放音頻和視頻,我們今天給大家帶來一種簡單的播放音頻和視頻的方法,使用的是Unity自帶的函數。本文的內容參考了宣雨松所寫的《Unity3D遊戲開發》一書,特此致謝。

 

1 播放音頻

首先,Unity支持的音頻格式有wav、mp3、ogg等。在場景中創建一個空物體GameObject,併爲其添加AudioSource組件。將一段mp3音樂拖到project的assets文件夾下,並將該音樂文件綁定到剛纔創建的空物體的AudioSource組件的AudioClip上。

編寫如下腳本PlayAudio.cs:

using UnityEngine;
using System.Collections;

public class PlayAudio : MonoBehaviour {

    public AudioSource audio;

    public float volume;
	void Start () {
        volume = 0.2f;
	}
	
	// Update is called once per frame
    void OnGUI()
    {
        if (GUI.Button(new Rect(10, 10, 200, 100), "Play"))
        {
            if (!audio.isPlaying)
            {
                audio.Play();
            }
        }
        if (GUI.Button(new Rect(10, 120, 200, 100), "Close"))
        {
            if (audio.isPlaying)
            {
                audio.Stop();
            }
        }
        if (GUI.Button(new Rect(10, 230, 200, 100), "Pause"))
        {
            if (audio.isPlaying)
            {
                audio.Pause();
            }
        }
        volume = GUI.HorizontalSlider(new Rect(250, 50, 200, 50), volume, 0, 1);
        GUI.Label(new Rect(250, 70, 300, 20), "Volume:" + (int)(volume * 100) + "%");

        if (audio.isPlaying)
        {
            audio.volume = volume;
        }       
    }
}


將PlayAudio.cs綁定到MainCamera上,然後把剛纔創建的GameObject拖動到PlayAudio腳本的Audio變量上。

運行程序,得到如下結果:



2 播放視頻

Unity支持的視頻格式包括mov、mpg、mpeg、mp4、avi、asf。但是有的時候,在將視頻拖入Unity中的時候會出問題。所以我們建議先對視頻進行格式轉換。推薦工具:Theora Converter .NET,地址https://pan.baidu.com/s/1miQ8NNU。下載安裝後把要播放的文件轉換爲ogv格式,這種格式可以直接被Unity識別。

將轉化好的ogv格式的視頻文件拖到Project的Assets文件夾下。在場景中創建一個Plane,並且將下面的PlayVideo.cs腳本綁定到Plane上。並且將要播的視頻拖到該腳本的myMovieTexture變量位置上。

using UnityEngine;
using System.Collections;

public class PlayVideo : MonoBehaviour {

    public MovieTexture myMovieTexture;
	void Start () {
        this.GetComponent<Renderer>().material.mainTexture = myMovieTexture;
        myMovieTexture.loop = true;
	}
	
	// Update is called once per frame
    void OnGUI()
    {
        if (GUI.Button(new Rect(10, 10, 200, 100), "PlayMovie/ContinueMovie"))
        {
            if (!myMovieTexture.isPlaying)
            {
                myMovieTexture.Play();
            }
        }
        if (GUI.Button(new Rect(10, 110, 200, 100), "PauseMovie"))
        {
            if (!myMovieTexture.isPlaying)
            {
                myMovieTexture.Pause();
            }
        }
        if (GUI.Button(new Rect(10, 210, 200, 100), "CloseMovie"))
        {
            if (!myMovieTexture.isPlaying)
            {
                myMovieTexture.Stop();
            }
        }
    }
}


運行效果:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章