Unity 簡単なBGM・効果音の再生のやり方 AudioSource AudioListener AudioClip

こんにちは。レモンティーです。

今回は、BGMとSEについてです。

これらはAudioSourceコンポーネントというのをつかって再生します。

ですが、ずっと鳴ってる一曲のBGMで良い場合(A)と、
任意のタイミングで鳴らしたい場合(B)で
楽な手順が違う(やってることは同じ)のでわけて説明します。
最後にボタンを押すと再生するという例を書きます。

(A)ずっと鳴ってる一曲でかまわない時

やることは

①AudioSourceをつける
②↑の設定
③もしAudioListenerがなければつける

です。

①AudioSourceをつける

シーン内の適当なオブジェクトにAudioSourceコンポーネントをつけます。
AddComponent>Audio>AudioSourceです
f:id:sawalemontea:20170911180621p:plain

こんなのがでます
f:id:sawalemontea:20170911180705p:plain

ちなみに、Create>Audio>AudioSourceでもOKです。

これが音源になります。

②AudioSourceコンポーネントの設定

では設定していきます。

まず、一番上のAudio Clipのところに
再生したいファイルを入れます。
現時点では
mp3 ogg wav aiff  aif
mod it s3m xm
が再生できるようです。

次に、Play On AwakeとLoopにチェックをいれます。

これで鳴りっぱなしのBGMはOKです


先ほど設定したのは音源です。
それを聞くためには、耳がないといけません

この役割をはたすのがAudio Listenerです。

これはメインカメラにはじめからついているので
普通はわざわざなにかする必要はないですが、もしついて無かったらつけましょう。

AddComponent>Audio>AudioListener です。


(B)任意のタイミングで鳴らしたいとき

やることは

①AudioSourceコンポーネントをつける
②スクリプトを書く
③インスペクターで設定

です

①は、Aの①と同じなので省きます。
なにも設定はしなくていいので付けるだけでOKです。



スクリプトを書きます。

必要なのは、

AudioSourceとAudioClipの変数を用意する
AudioSourceコンポーネントを取得する
再生する処理を書く

です。
変数の用意とコンポーネントの取得を書くとこんな感じです

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BGMandSE : MonoBehaviour {

    public AudioSource AS;
    public AudioClip A, B, C;

	void Start () {
          AS = GetComponent<AudioSource>();
        
	}	
}

これであとは任意の位置で

AS.PlayOneShot(B);

のように書くと引数のクリップが再生されます。





最後にpublicで宣言したAudioSourceとAudioClipを設定します。
インスペクターにはめるだけです
f:id:sawalemontea:20170911183755p:plain

これで(B)の手順はおしまいです。

(Bの例)ボタンを押すと再生

それでは最後にボタンを押すと再生するようにしてみましょう。
まずスクリプトをかきます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BGMandSE : MonoBehaviour {
    public AudioSource AS;
    public AudioClip A, B;
	void Start () {
        AS = GetComponent<AudioSource>();
    }
    public void OnClick()
    {
        AS.PlayOneShot(A);
    }
    public void OnClick2()
    {
        AS.PlayOneShot(B);
    }
}

次に、UIのButtonをつくり
ボタンのButtonコンポーネントのOnClick()を設定します
f:id:sawalemontea:20170911184220p:plain
↑を押して…
f:id:sawalemontea:20170911184335p:plain
設定。

f:id:sawalemontea:20170911184513p:plain
意味は、ボタンが押されたとき
どのオブジェクトの、どのメッソドを呼び出すか、です。

赤丸がオブジェクト、青丸がメッソドです。


これを二つのボタンに行えば、
ボタン1をおすとA、ボタン2を押すとBの音声が再生されます。


今回はこれでおしまいです。

Audio関連
sawalemounity.hatenablog.com
sawalemounity.hatenablog.com

前回
sawalemounity.hatenablog.com

初回
sawalemounity.hatenablog.com


www.sawalemontea.com