トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

unity_sound

サウンドを鳴らす

サウンド形式として、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関数内で呼ぶことで
繰り返し再生されることになる。