public void PlayAudio(AudioObject _audioObj)
 {
     if (_audioObj != null)
     {
         AudioClip clip = _audioObj.GetClip();
         if (clip == null)
         {
             Debug.LogError("No Clip Found To Play!");
             return;
         }
         AudioSource2D.clip = clip;
         AudioSource2D.loop = _audioObj.Looping;
         AudioSource2D.Play();
     }
 }
Exemple #2
0
    public static void Play(string name, Vector3 position = default, float overwriteVolume = -1)
    {
        if (name == null || name == "")
        {
            return;
        }
        if (!audioObjects.ContainsKey(name))
        {
            var obj = Resources.Load($"Audio/{name}") as AudioObject;
            if (obj == null)
            {
                Debug.LogWarning("Trying to play audio object that does not exsist");
                return;
            }
            audioObjects.Add(name, obj);
        }
        if (AudioSourcePrefab == null)
        {
            var obj = Resources.Load <GameObject>("Audio/AudioSource");
            if (obj == null)
            {
                Debug.LogWarning("Failed to load audio source prefab at Resources/Audio/AudioSource");
                return;
            }
            AudioSourcePrefab = obj;
        }

        AudioObject audioObject = audioObjects[name];
        GameObject  holder      = Object.Instantiate(AudioSourcePrefab, position, Quaternion.identity);
        AudioSource source      = holder.GetComponent <AudioSource>();

        source.clip = audioObject.GetClip();
        source.outputAudioMixerGroup = audioObject.MixerGroup;
        source.volume       = overwriteVolume == -1 ? Random.Range(audioObject.MinVolume, audioObject.MaxVolume) : overwriteVolume;
        source.pitch        = Random.Range(audioObject.MinPitch, audioObject.MaxPitch);
        source.spatialBlend = audioObject.SpatialBlend;
        source.loop         = audioObject.Loop;

        source.Play();
        Debug.Log("Playing");
    }