概要
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 の再生を切り替えられるコンポーネントを実装して
そのコンポーネントをゲームオブジェクトにアタッチして
PC ビルドしてみると正常に AudioClip を切り替えることができるが
WebGL ビルドだと AudioClip が切り替わらず
最初に AudioSource.clip に設定した AudioClip が再生されて続けてしまう現象に遭遇した
プロジェクトを Unity 2020.3 にダウングレードしたら
WebGL ビルドで正常に AudioClip を切り替えることができた