【Unity】押したら音が鳴るボタンをできるだけシンプルに作る

buttonsound.png

 カジュアルゲームを作っていると、シンプルにボタンを押した時に音を鳴らしたい場面に出くわします。でもサウンド管理クラスを作るほどじゃないし、コード書くって言っても AudioSource.PlayOneShot を叩くだけのコードになりそう。

そんな時はコードを書かずにサクッと実装しましょう。
UnityのInspectorって結構何でもできるっぽいですよ。


押したら音が鳴るボタンのシンプルな作り方

  1. KuroMikanの環境
  2. Unityのサウンドの仕組み
  3. 実装方法

KuroMikanの環境

・Mac OS 10.15.6 / Windows10 Home
・Unity 2019.4.13f1

Unityのサウンドの仕組み

MainCameraにアタッチされた Audio Listener が自分の「耳」だとして、Audio Source が「CDプレイヤー」、Audio Clip が「CD」の役割を果たします。
Audio Source の Spatial Blend が2Dなら、耳とCDプレイヤーとの距離は常に一定(同じ音量)となります。
Audio Clip として使える拡張子は、.wav .mp3 .ogg. aif となります。

コードを書いて実装する場合は
	private AudioSource hoge;

void Start () {
hoge = GetComponent();
}

void Update () {
if(Input.GetKeyDown(KeyCode.Enter)) {
hoge.PlayOneShot(moge.clip);
}
}
みたいになると思うのですが、今回はノーコードで同じことをやります。

実装方法

(1) 音声ファイルを用意します。
鳴らしたい音声ファイルを Assets フォルダ内に保存します。
これでAudio Clip化されます。

(2) Audio Source を配置します。
ヒエラルキーで右クリック > Audio > Audio Source をクリック。
AudioClipの項目はNoneのままでOK。

(3) ボタンを配置します。
ヒエラルキー上で右クリック > UI > Button をクリック。

(4) ボタンを押した時の挙動を指定します。
ボタンのInspectorを表示し、On Click() の項目にある+マークをクリック。
None(Object) の項目に、ヒエラルキーにあるAudio Source をドラッグ&ドロップ。
No Function の項目に、AudioSource > PlayOneShot を指定。
ファイルが指定できるようになるので、Assets内のAudio Clipを設定。

設定が終わると、このようになるはずです。

スクリーンショット 2020-11-29 23.06.51.png

以上です。
これで実行すると、中央のボタンを押した時にサウンドが再生されます。


今回紹介した方法はクリックで音を鳴らす専門のやり方です。
クリック以外をトリガーにする場合は、ボタンにEvent Triggerコンポーネントをアタッチして、「Add New Event Type」ボタンをクリックすれば、好きなトリガーを選ぶことができます。
とはいえ、基本的にスマホゲームであればOnClickだけで間に合う気がしています。


📖このページを見ている方におすすめの書籍📖