Пример #1
0
    public void PlayGeneric(string unboundClipName)
    {
        if (unboundClips.Length == 0)
        {
            return;
        }
        else if (unboundClips.Where(r => r.clip.name == unboundClipName).FirstOrDefault() == null)
        {
            return;
        }
        GameObject emitterObject;

        if (genericEmitters.Count != 0 && genericEmitters.Where(r => !r.gameObject.activeInHierarchy).FirstOrDefault() != null)
        {
            emitterObject = genericEmitters.Where(r => !r.gameObject.activeInHierarchy).FirstOrDefault().gameObject;
        }
        else
        {
            emitterObject = Instantiate(genericAudioEmitterPrefab, transform);
            genericEmitters.Add(emitterObject.GetComponent <AudioEmitter>());
        }
        AudioEmitter     emitter          = emitterObject.GetComponent <AudioEmitter>();
        UnboundClipClass unboundClipClass = unboundClips.Where(r => r.clip.name == unboundClipName).FirstOrDefault();

        if (unboundClipClass == null)
        {
            return;
        }
        emitter.ChangeClip(unboundClipClass.clip);
        emitter.priority        = unboundClipClass.priority;
        emitter.dampenToPercent = unboundClipClass.dampenAmount;
        emitterObject.SetActive(true);
        emitter.PlayAudio();
    }