Ejemplo n.º 1
0
    /// <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)]);
    }
Ejemplo n.º 2
0
    /// <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();
    }