示例#1
0
    public AudioSource PlaySound( float panAmount, AUDIOTEMPLATE template, AudioClip soundClip)
    {
        if(soundClip == null)
        {
            return null;
        }

        AudioSource newAudio = s_instance.gameObject.AddComponent<AudioSource>();
        newAudio.clip = soundClip;

        SetSourceToTemplate(template, newAudio);
        newAudio.pan = panAmount;
        newAudio.Play();
        m_allSounds.Add(newAudio);
        return newAudio;
    }
示例#2
0
 private void SetSourceToTemplate(AUDIOTEMPLATE template, AudioSource source)
 {
     AudioSource templateSource = AudioTempates[template];
     source.dopplerLevel = templateSource.dopplerLevel;
     source.ignoreListenerPause = templateSource.ignoreListenerPause;
     source.ignoreListenerVolume = templateSource.ignoreListenerVolume;
     source.loop = templateSource.loop;
     source.maxDistance = templateSource.maxDistance;
     source.minDistance = templateSource.minDistance;
     source.pan = templateSource.pan;
     source.panLevel = templateSource.panLevel;
     if(template == AUDIOTEMPLATE.FOOTSTEP)
     {
         source.pitch = Random.Range(0.5f, 2.0f);
     }
     else if ( template == AUDIOTEMPLATE.JUMP)
     {
         source.pitch = Random.Range(0.9f, 1.1f);
     }
     else
     {
         source.pitch = templateSource.pitch;
     }
     source.playOnAwake = templateSource.playOnAwake;
     source.priority = templateSource.priority;
     source.rolloffMode = templateSource.rolloffMode;
     source.spread = templateSource.spread;
     source.timeSamples = templateSource.timeSamples;
     source.velocityUpdateMode = templateSource.velocityUpdateMode;
     source.volume = templateSource.volume;
 }