示例#1
0
 public void PlaySFX(SFXProfile sfx, float delayTime)
 {
     if (sfx.clip != null)
     {
         StartCoroutine(PlaySFXCoroutine(sfx, delayTime));
     }
 }
示例#2
0
 public void PlayBGM(SFXProfile sfx, float switchTime)
 {
     if (sfx.clip != BGMManager.clip && sfx.clip != null)
     {
         StartCoroutine(PlayBGMFade(sfx, switchTime));
     }
 }
示例#3
0
    public void PlayVoiceOver(SFXProfile sfx, float switchTime)
    {
        VOManager.Stop();

        VOManager.clip = sfx.clip;
        VOManager.PlayDelayed(switchTime);
        VOManager.volume = sfx.clipVolume;
    }
示例#4
0
        public static void ServerPlay3D(SFXProfile profile, TransformF transform)
        {
            SimSet ClientGroup = Sim.FindObject <SimSet>("ClientGroup");

            // Play the given sound profile at the given position on every client
            // The sound will be transmitted as an event, not attached to any object.
            for (uint i = 0; i < ClientGroup.getCount(); i++)
            {
                ClientGroup.getObject(i).As <GameConnectionToClient>().play3D(profile, transform);
            }
        }
示例#5
0
    IEnumerator PlaySFXCoroutine(SFXProfile sfx, float delayTime)
    {
        AudioSource go = this.gameObject.AddComponent <AudioSource> ();

        go.playOnAwake = false;
        go.Stop();

        go.clip   = sfx.clip;
        go.volume = sfx.clipVolume;
        go.PlayDelayed(delayTime);

        yield return(new WaitForSeconds(sfx.clip.length + delayTime));

        Destroy(go);
    }
示例#6
0
    IEnumerator PlayBGMFade(SFXProfile sfx, float fadeDelay)
    {
        float currVolume = BGMManager.volume;

        for (float f = 0.0f; f < fadeDelay / 2.0f; f += Time.deltaTime)
        {
            BGMManager.volume = Mathf.Clamp01((1.0f - (f / (fadeDelay / 2.0f))) * currVolume);
            yield return(null);
        }
        BGMManager.volume = 0.0f;
        BGMManager.Stop();

        BGMManager.clip = sfx.clip;
        BGMManager.PlayDelayed(0.0f);
        for (float f = 0.0f; f < fadeDelay / 2.0f; f += Time.deltaTime)
        {
            BGMManager.volume = Mathf.Clamp01(f / (fadeDelay / 2.0f) * sfx.clipVolume);
            yield return(null);
        }
        BGMManager.volume = sfx.clipVolume;
    }