【Unityメモ書き5】サウンド再生処理

クロ

Unityメモも
今回で5回目となりましたね
このあたりになってくると簡単なゲームは作れるのではないかなと思います

今度はゲーム要素の最大の味付けになる
サウンド再生周りをメモ書きしていきたいと思うわ
これで本当にゲームチックになっていくわね

霊夢
魔理沙

正直言うと
Unityのサウンド再生周りは全然難しくないぞ
難しいのは再生タイミングをスクリプトで管理するぐらいかな

ということで
今回はサウンド周りの紹介です
続きを読むからどうぞ!

妖夢

クロ

当然ですが
サウンド素材は各自取得してきてくださいね
Unityのアセットストアからでも無料のサウンド素材は取得できます

・魔王魂
http://maoudamashii.jokersounds.com/

・Music is VFR
http://musicisvfr.com/

商用利用可能で
無料使用可能な音楽サイトを2つを出しておいたわ
ここから幾つか探してくるのもありね

霊夢

魔理沙

登録方法はいつもどおりに
Unityのprojectウインドウにドラッグ・アンド・ドロップ
するだけでOKだ

登録できる音楽データは
mp3,wav,oggだと思います
他にもできるかもしれませんが、上記3つの方が扱いやすいと思います

妖夢

クロ

Unityに登録できたらその音楽データを
HierarchyかSceneウインドウにドラッグ・アンド・ドロップ
するとシーンに登録できます

見ての通りGameObject扱いになるので
3D空間だと音の再生位置の設定もできるわ
効果音、BGMの区別はしてないようなのでどちらも同じように配置していくわ

霊夢

魔理沙

配置したGameObjectのInspectorをみると
その音楽に関する再生方法を設定できるぞ
本来ならPlay On Awakeにチェックが入っていると思う

Play On Awakeはアクティブになった瞬間に再生するかどうかのフラグで
下のLoopはその名の通りループするかどうかになります
BGMとして処理したい場合は双方にチェックを付けておけばそれで完了します

妖夢
クロ

効果音の場合は
任意の箇所で再生を行いたいと思うので先程のチェックを外し
再生のためのスクリプトを書く必要があります

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


/// ==============================================================
///  ユニット選択メインの処理 
/// --------------------------------------------------------------
/// 
/// ==============================================================
public class UnitSelectMainScript : MonoBehaviour
{
    // 音楽
    ///  【外部取得】決定音オブジェクト 
    public GameObject mSelectSEObject;
    ///  決定音 
    private AudioSource mSelectSE;


    /// ==============================================================
    /// 初期化処理 
    /// --------------------------------------------------------------
    /// 
    /// ==============================================================
    void Start ()
    {
        mSelectSE = mSelectSEObject.GetComponent();
    }


    /// ==============================================================
    ///  更新処理 
    /// --------------------------------------------------------------
    /// 
    /// ==============================================================
    void Update ()
    {
    }


    /// ==============================================================
    ///  Unit選択Click処理 
    /// --------------------------------------------------------------
    /// 
    /// ==============================================================
    public void OnSelectedClilck()
    {
        // 効果音再生
        mSelectSE.PlayOneShot(mSelectSE.clip);

    }
}

上がボタンのSE再生のスクリプトになるかしらね
クリックしたら再生するという簡単な仕組みよ
上から説明していくわね

霊夢
魔理沙

public GameObject mSelectSEObject;という処理で
他のゲームオブジェクトと同様に読み込んでいくぞ
他の読み込み処理と同じだな

mSelectSE = mSelectSEObject.GetComponent();で
GameObjectからAudioSourceを取得します
これでスクリプト側から音楽関連を操作することができます

妖夢
クロ mSelectSE.PlayOneShot(mSelectSE.clip);で再生を行います
PlayOneShotで再生すると、呼び出したとき1回だけ再生されます
これを使えば任意のタイミングで音楽の再生することができます

と、こんな感じで作っていけば
サウンドの再生が可能になるわね
これで2Dのゲームを作ることが可能になったかしらね

霊夢

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください