🔥

BGMをシームレスに切り替える

2024/03/20に公開

Sound1、Sound2にそれぞれAudioSouceコンポーネントを設定し、再生したいサウンドファイルを入れてはInspector上でどちらも「Play On Awake」を false にしてます。
Playメソッドを使って再生開始

2つのAudioSourceが常時再生されてるのは負荷的にアレだと思うので、せめてMixRateが 0 or 1 のときはもう一方のAudioSourceの再生を止めるべき

FrontBoundsObject.cs
using UnityEngine;

public class SwitchAudio : MonoBehaviour {
    [SerializeField]
    private AudioSource[] _audios;

    /// <summary>
    /// BGMの混ぜ具合。0ならSound1、1ならSound2になる
    /// </summary>
    [Range(0, 1)]
    public float _mixRate = 0;

    public void Play() {
        _audios[0].Play();
        _audios[1].Play();
    }

    private void Update () {
        _audios[0].volume = 1f - _mixRate;
        _audios[1].volume = _mixRate;
    }
}


https://qiita.com/flankids/items/0b29c214cff40bcb3bb2

Discussion