サウンドを鳴らす
サウンド形式として、aif/wav/mp3/ogg形式をAssetとしてインポートできます。
サウンド自身はGameObjectとしてシーンに配置する必要があります。3Dサウンド情報を持つため、メインカメラからの位置で音が遠ざかったり近づいたりします。
GameObjectとしてサウンドをシーンに配置すると、InspectorウィンドウでAudio Sourceの「Play On Awake」をOffにしておきます。
こうすることで、実行時にサウンドが鳴らないようになります。
スクリプトの記述
GameObject名を「helicopter_32bit」とします。
private GameObject m_sound1; // Use this for initialization void Start () { m_sound1 = GameObject.Find("helicopter_32bit"); }
とすることで、GameObjectとしてのサウンドが「m_sound1」として読み込まれます。
後は、再生したいタイミングで
m_sound1.audio.Play();
とすると、音が鳴ります。
m_sound1.audio.Stop();
でサウンドを停止します。
「audio」は「AudioSource」のクラスになります。
音が常に同じ最大の大きさで出るようにしたい場合は、
m_sound1.transform.position = GameObject.Find("Main Camera").transform.position;
のように、「Main Camera」名で指定されるカメラのGameObjectの位置にあわせるようにするか、「Main Camera」のカメラの子としてHierarchyウィンドウでサウンドを割り当てるとよいです。
AudioSourceの関数/変数
Play
サウンドを再生する。
m_sound1.audio.Play();
Stop
サウンド再生を停止する。
m_sound1.audio.Stop();
volume
サウンドの再生音量を指定 (0.0 - 1.0)。
m_sound1.audio.volume = 0.5f;
isPlaying
再生されているかどうかをtrue/falseで取得。
if (!m_sound1.audio.isPlaying) { m_sound1.audio.Play(); }
上記は、MonoBehaviourのUpdate関数内で呼ぶことで
繰り返し再生されることになる。