/// <summary> /// 指定されたVoiceTypeよりListを設定し、List内にあるVoiceDataをランダムで1つ取得 /// </summary> /// <param name="voiceType"></param> /// <returns></returns> private SoundDataSO.VoiceData GetVoice(SoundDataSO.VoiceType voiceType) { //再生するボイス用のVoiceDataを取得 List <SoundDataSO.VoiceData> list = new List <SoundDataSO.VoiceData>(); switch (voiceType) { case SoundDataSO.VoiceType.Start: list = startVoiceList; break; case SoundDataSO.VoiceType.Lose: list = loseVoiceList; break; case SoundDataSO.VoiceType.Win: list = winVoiceList; break; case SoundDataSO.VoiceType.Attack: list = attackVoiceList; break; case SoundDataSO.VoiceType.Hit: list = hitVoiceList; break; case SoundDataSO.VoiceType.Warning: list = warningVoiceList; break; } //場面に応じたボイスをランダムで1つ取得して戻す return(list[Random.Range(0, list.Count)]); }
/// <summary> /// 指定された種類のボイス再生 /// 種類内に複数のボイスの登録がある場合には、その中からランダムな1つのボイスを再生 /// </summary> /// <param name="voiceType"></param> public void PlayVoice(SoundDataSO.VoiceType voiceType) { //ボイス再生中は重複して再生しない if (voiceSource.isPlaying) { return; } //ボイスのデータを取得 SoundDataSO.VoiceData voiceData = GetVoice(voiceType); //再生するボイスを指定 voiceSource.clip = voiceData.voiceAudioClip; //ボリュームを設定 voiceSource.volume = voiceData.volume; //ボイス再生 voiceSource.Play(); }