日々是好日~every day is a good day~

日常の中の非日常の備忘録

【Unity】BGMをミュートする

今回はBGM等のサウンドをミュートする方法です
やり方はいろいろだと思いますが簡単な方法を
ちなみに画像は『いらすとや』さんの画像
www.irasutoya.com
BGM音源はFREE BGM DOVA-SYNDROME
Reguさんの『のんきな日常』を使わせて頂いています
dova-s.jp
1.ヒエラルキーの+をクリックしてUI/古い機能/ボタンを選択

2.スピーカーONの画像をImageのソース画像にドラッグ&ドロップ

3.サイズを調整しオブジェクトの名前をSpeakerに変更

4.コンポーネントを追加をクリックしAudioSourceを追加する

5.オーディオクリップにBGMの音源をドラッグ&ドロップ
ループにチェックを入れる ゲーム開始時に再生のチェックは外す

6.プロジェクトタブ内で右クリックし作成/C#スクリプトを選択
Speakerというスクリプトを作成する

7.Speakerスクリプトを編集

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

public class Speaker : MonoBehaviour
{
    public AudioSource bgm;
    public GameObject speaker;
    public Sprite soundOn;
    public Sprite soundOff;
    private bool muteOff;
    // Start is called before the first frame update
    void Start()
    {
        bgm.Play();
        muteOff = true;
    }
    public void MuteOnOff()
    {
        if (muteOff)   //ON
        {
            muteOff = false;
            speaker.GetComponent<Image>().sprite = soundOff;
        }
        else   //OFF
        {
            muteOff = true;
            speaker.GetComponent<Image>().sprite = soundOn;
        }
        bgm.mute = !bgm.mute;
    }
}

8.SpeakerスクリプトをSpeakerオブジェクトにアタッチ

9.SpeakerスクリプトにAudioSource Speakerオブジェクト スピーカーON画像 スピーカーOFF画像をドラッグ&ドロップ

10.Buttonのクリック時の+をクリック

11.Speakerオブジェクトをドラッグ&ドロップしFunctionの▼をクリック

12.Speaker/MuteOnOff()を選択

実行するとBGMが鳴ります
スピーカーをクリックするとミュートされもう一度クリックすると解除されます

(再生できなくなっていたので2024.1.25に修正しました)