イラスト、モデリング、Unity、VR関連

unityとかblenderとかvr関連の作業メモ

Unity 音を鳴らす、音を止める

++ステージ全体にかかるBGMを流す

ヒエラルキーに空のオブジェクトを作成=>

空のオブジェクトに流したい音楽ファイルをドラッグ&ドロップ=>

AudioSorceコンポーネントの”ゲーム開始時に再生(On Awake) ループ”にチェックを入れる。

 (AddComponentでAudioSorceを追加してもいい)

(ヒエラルキーにあるAudioSorceを設置するには何らかのオブジェクトの子要素である必要がある。)

 

++ステージ全体にかかるBGMを止める

+そのBGMが関連づけられたオブジェクトのスクリプトから止める場合

gameObject.GetComponent().Stop();

+他のオブジェクトから止める場合

(BGMを関連付けたオブジェクト名(ヒエラルキーに表示されてる名前)が WholeBGMの場合)

GameObject.Find("WholeBGM").GetComponent().Stop();

 

+特定の座標から音を鳴らす場合
Playerタグを持つオブジェクトと衝突したら、その衝突した座標から音を鳴らす (publicのメンバ変数を持つと、インスペクタビューからその変数の内容を設定できるので、soundに鳴らしたい音のファイルを入れておく)

public AudioClip sound;
void OnTriggerEnter(Collider hit){
if (hit.CompareTag("Player")){
	AudioSource.PlayClipAtPoint(sound, transform.position);
}

++AudioSorceから特定の座標から鳴らすか、全体に流すかを操作する
f:id:arumogina:20181213174509p:plain

 spatial blendを2Dに近づけば、全体に、3Dに近づけば距離による減衰が起こる。

 

++補足

音を鳴らすには音を鳴らす側と聞く側の両方のオブジェクトが必要らしく、聞く側のオブジェクトはMainCameraにデフォルトで付いている