Unity が音量を制御する方法 (ミュート機能を含む)

1: UGUI の制作

1. まず、UIの[Hierarchy]配下にSliderコンポーネントを作成します。対応する幅と高さを設定します。

b7a97e0944c746369ad0f9ad0640492e.png

 2. スライダースライダーの塗りつぶしの色を調整します。一般的な音の色は黄色なので、こちらも黄色にチューニングしています。

a6ac7a900f6d479a8c98f417ea134add.png

スライダー内の値をスライドさせてみます。

9c6a87d481064bb3affbfe3bae2bb0df.png

a. スライド前。

ac1bba4e9b034fffb638a7908c844310.png

b. 半分までスライドさせます。

 46a46cad5ab94f9c9607018048fe7c1d.png

c. スライドを終了します。

 0b27484fa4db4a6582cfa33a97104396.png

上記のスライド値から、充填効果がその値によって制御される ことがわかります。ブラッドバーの作り方も同様で、用途に応じてスライド式のボリュームバーを作るので、まずは音を出す必要があります。

3: サウンドをマウントする空のオブジェクトを作成する

BGM という名前の空のオブジェクトを作成し、AudioSource 音源コンポーネントを追加し、コンポーネント内で制御する必要があるサウンドのサイズを追加します。

046c3c6373a04cf3b517fa4b7756b947.png

この時点で、制御する必要があるサウンドをマウントしました。次に、サウンドの音量がSlider コンポーネントのによって変化することを認識するスクリプトを作成します。

 4: サウンドの音量を制御するコードの実装

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

public class BGM : MonoBehaviour
{
    // Start is called before the first frame update

    //声音控制器
    public Slider AudioSlider;
    //声音控制器文本
    public Text AudioText;
    //音乐
    public AudioSource BGMsource;
    void Start()
    {
        //默认一开始声音为0.6
        AudioSlider.value = 0.6f;
    }
    //控制声音大小方法
    public void AudioCtrl()
    {
        //把value的值赋值给 BGMsource.volume 
        BGMsource.volume = AudioSlider.value;

        //文本显示当前声音大小
        AudioText.text = AudioSlider.value.ToString();
    }

}

5: Unity エンジンに戻る

1. わかりやすくするために、上記でさらに詳しく説明し、サウンド レベルを表示するテキストを追加しました。

したがって、Unity で Text テキストを作成し、Text テキストのサイズを設定する必要があります。

71b4dfcb62934049858b0d8b166def3a.png

 2. コンポーネントとオブジェクトをマウントする

613aeb8693864ea7bfd86cbafd8f1ec5.png

 8e3f5456041547079dd954a8e19752ef.png

3. 走る

a. デフォルトのサウンドは 0.6 です。 

d3842fac90634f7c8aeb2f0fb0777a60.png

b. ゲーム シーンで Slider コンポーネントをスライドすると、対応する音量値がそれに応じて変化します。

16d5ae9c30c546498c00cfa82ec611af.png

 サウンド コントローラーを作成するには、ボタンも必要です。サウンドが鳴るようにチェックし、無効にするとサウンドは消えます。次に、それを実装してみましょう。

6: サウンドコントローラースイッチ

1. トグルコンポーネントを作成する

b33dd35b5b934c5f8c15e43b6f15ef03.png

 2. 対応するコンポーネントをコードに追加します

改善後:全体のコードは以下のとおりです。

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

public class BGM : MonoBehaviour
{
    // Start is called before the first frame update

    //声音控制器
    public Slider AudioSlider;
    //声音控制器文本
    public Text AudioText;
    //声音开关
    public Toggle AudioSwitchToggle;
    //音乐
    public AudioSource BGMsource;
    void Start()
    {
        //默认一开始声音为0.6
        AudioSlider.value = 0.6f;
    }
    //控制声音大小方法
    public void AudioCtrl()
    {
        //把value的值赋值给 BGMsource.volume 
        BGMsource.volume = AudioSlider.value;

        //文本显示当前声音大小
        AudioText.text = AudioSlider.value.ToString();
    }
    //控制声音开关
    public void AudioSwitchToggleCtrl()
    {
        //如果声音控制按钮勾选了,那么我们就有声音
        if (AudioSwitchToggle.isOn)
        {
            //激活声音对象为自动播放
            BGMsource.gameObject.SetActive(true);
            //调用移动滑块控制声音大小
            AudioCtrl();
        }
        else
        {
            //关闭声音对象
            BGMsource.gameObject.SetActive(false);
        }
    }
}

3. tgoole オブジェクトをマウントし、メソッドを追加します

9e50fd48feb34546b6139bb3fc89cdfa.png

3fa3cb43b6d14787b548f0867bb9855f.png

七:運用効果図

1: ランタイム

3aeb4fc0b6d14a18a635e84b51575fdd.png

 2: トグルボタンをクリックした後

aa466dcfc7a0463eb0c7edea1303b1fe.png

ここでは、エクスプロイトを実行して、BGM オブジェクトが直接無効になっていて、実行時に音が聞こえないことを確認します。 

そこで、チェックを入れるとサウンドがオンになり、チェックを外すとサウンドの効果が無効になるように実現しました。

追加のポイント:  サウンドを再生し続ける必要がある場合は、AudioSource コンポーネントのループ設定をチェックして、ループで再生することができます。チェックした後、サウンドをループで再生できます。一般に、Unity を使用した私たちの制作プロセスにはサウンドが不可欠です。


やっと

上記の手順は、サウンドスイッチコントローラーとサウンドスライダーを作成してサウンドのボリュームを制御するプロセス全体です。

ご覧になったお友達は、1 つのボタンを 3 回クリックしてください。サポートしていただくと、作成と共有のモチベーションがさらに高まります。常に驚きと利益をもたらすことを願っています。

2413988ad82470fe49997fa97ee1adf8.png
ワンクリックで3連続!

おすすめ

転載: blog.csdn.net/weixin_57813136/article/details/132327906