Beispiel #1
0
    // public static void PlayEffect(string effectName)
    // {
    //  if(numEffectSources>0 && audioClips.ContainsKey(effectName) && isMusicOn)
    //     {
    //         int randomIndex = Random.Range(0, audioClips[effectName].Length);
    //      s_effectsSources[nextEffectSource].PlayOneShot(audioClips[effectName][randomIndex]);
    //      nextEffectSource = (nextEffectSource + 1) % numEffectSources;
    //     }
    //  else if(numEffectSources<=0)
    //  {
    //      Debug.Log ("No hay AudioSources definidas para efectos");
    //  }
    //  else if(isMusicOn)
    //  {
    //      Debug.Log ("No se reconoce el efecto con el nombre: " + effectName);
    //  }
    // }

    public static void PlayEffect(AudioEffectSO effectSO)
    {
        if (effectSO == null)
        {
            Debug.LogWarning("AudioManager: effectSO is null");
            return;
        }
        if (!IsSoundEffectsOptionEnable())
        {
            return;
        }

        AudioClip clip = effectSO.GetAudioClip();

        if (clip == null)
        {
            Debug.LogWarning("AudioManager: audio clip is null");
            return;
        }
        if (numEffectSources > 0)
        {
            s_effectsSources[nextEffectSource].pitch = effectSO.pitch;
            s_effectsSources[nextEffectSource].PlayOneShot(clip, effectSO.volume);
            nextEffectSource = (nextEffectSource + 1) % numEffectSources;
        }
        else if (numEffectSources <= 0)
        {
            Debug.Log("No hay AudioSources definidas para efectos");
        }
    }