コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Unity 2021.2.11f1 の WebGL ビルドで AudioSource.clip によるサウンドの変更ができない

概要

using UnityEngine;

public sealed class Example : MonoBehaviour
{
    [SerializeField] private AudioSource m_audioSource;
    [SerializeField] private AudioClip   m_audioClip1;
    [SerializeField] private AudioClip   m_audioClip2;

    private void Update()
    {
        // Z キーが押されたら m_audioClip1 を再生
        if ( Input.GetKeyDown( KeyCode.Z ) )
        {
            m_audioSource.clip = m_audioClip1;
            m_audioSource.Play();
        }

        // X キーが押されたら m_audioClip2 を再生
        if ( Input.GetKeyDown( KeyCode.X ) )
        {
            m_audioSource.clip = m_audioClip2;
            m_audioSource.Play();
        }
    }
}

上記のように 1 つの AudioSource を使って
2 つの AudioClip の再生を切り替えられるコンポーネントを実装して

f:id:baba_s:20220216152628p:plain

そのコンポーネントをゲームオブジェクトにアタッチして
PC ビルドしてみると正常に AudioClip を切り替えることができるが
WebGL ビルドだと AudioClip が切り替わらず
最初に AudioSource.clip に設定した AudioClip が再生されて続けてしまう現象に遭遇した

プロジェクトを Unity 2020.3 にダウングレードしたら
WebGL ビルドで正常に AudioClip を切り替えることができた