Unityでムービー再生
Unityでムービー再生するにはMovieTextureを使います。
Proバージョンのみの対応です。
取り敢えずローカルにあるファイル再生版でGUITextureに貼りつけてみました。
サポートされているファイルタイプは、QuickTimeが再生できるものに限られているらしい。(.mov, .mpg, .mpeg, .mp4, .avi, .asf)
ムービーファイルをプロジェクトに追加すると、自動的にインポートされOggTheoraフォーマットに変換されます。
今回はGUITextureに貼りつけるので、GUITextureのオブジェクトを作って、それに下記のスクリプト(ControlMovie.csとする)を適用します。
using UnityEngine; using System.Collections; public class ControlMovie : MonoBehaviour { public MovieTexture movieTexture; void Start() { guiTexture.texture = movieTexture; movieTexture.Play(); } void Update() { if (Input.GetButtonDown("Fire1")) { movieTexture.Pause(); } else if (Input.GetButtonDown("Fire2")) { movieTexture.Play(); } } }
movieTextureには、先程インポートして変換されたムービーテクスチャをInspectorから選択。
ムービーテクスチャをインポートした時に、オーディオトラックも一緒にインポートされてムービーテクスチャのオーディオクリップ子要素となります。
このファイルをGameObjectに付加しておくと、MovieTexture.Play()呼んだ時に音声が一緒に再生されますし、MovieTexture.Stop()を呼んだ時は一緒に停止されます。
最初再生した時になんか元ソースより音が小さいなぁと思ったら、これが原因でした。
取り敢えず、Min Distanceをいじって回避。