예제 #1
0
 public void OnStopSE(AudioSE se)
 {
     enabledSEsources.Remove(se);
     if (se.EnableCache)
     {
         cachedSEsources.Enqueue(se);
     }
 }
예제 #2
0
 public void Play()
 {
     if (enablePositionEffect)
     {
         AudioManager.Instance.PlaySE(se);
     }
     else
     {
         se = AudioManager.Instance.PlaySE(clip, volume);
     }
 }
예제 #3
0
    public void PlaySE(AudioSE se)
    {
        if (enabledSEsources.Count >= numberOfConcurrentSE)
        {
            se = enabledSEsources.First.Value;
            enabledSEsources.RemoveFirst();
            se.Stop();
            if (se.EnableCache)
            {
                cachedSEsources.Enqueue(se);
            }
        }

        enabledSEsources.AddLast(se);
        se.Play(this.volume.Mute, this.volume.SE, this.volume.VOICE);
    }
예제 #4
0
    void Awake()
    {
        if (!enablePositionEffect)
        {
            return;
        }

        se = GameObjectUtility.AddChild <AudioSE>("SE", target);
        if (type == InstanceType.Sibiling)
        {
            se.transform.parent = target.transform.parent;
        }

        se.EnableCache = false;
        se.Init(clip, volume);
        se.GetComponent <AudioSource>().rolloffMode = AudioRolloffMode.Linear;
        se.isVoice = isVoice;
    }