コード例 #1
0
    public static AudioSource PlayClipAt(AudioClipWithVolume clip, Vector3 pos, AudioMixerGroup mixerGroup, float delay = 0f)
    {
        AudioSource audioSource = null;

        if (clip != null)
        {
            GameObject gameObject = new GameObject(clip.audioClip.name);
            if ((bool)TankGame.instance)
            {
                gameObject.transform.parent = TankGame.instance.transform;
            }
            gameObject.transform.position = pos;
            audioSource                       = gameObject.AddComponent <AudioSource>();
            audioSource.clip                  = clip.audioClip;
            audioSource.loop                  = clip.loopingSound;
            audioSource.rolloffMode           = AudioRolloffMode.Linear;
            audioSource.volume                = clip.volume;
            audioSource.outputAudioMixerGroup = mixerGroup;
            audioSource.PlayDelayed(delay);
            if (!audioSource.loop)
            {
                UnityEngine.Object.Destroy(gameObject, clip.audioClip.length);
            }
        }
        return(audioSource);
    }
コード例 #2
0
 public static void PlayClip(AudioClipWithVolume clip, AudioSource audioSource)
 {
     audioSource.clip   = clip.audioClip;
     audioSource.volume = clip.volume;
     audioSource.loop   = clip.loopingSound;
     audioSource.Play();
 }
コード例 #3
0
 public SoundHandler Play(AudioClipWithVolume clip, bool loop = false, float pitch = 1f,
                          bool ignoreListenerPause            = false, float delay = 0f)
 {
     if (clip == null)
     {
         return(null);
     }
     return(Play(clip.Clip, clip.VolumeModifier, loop, clip.Pitch * pitch, ignoreListenerPause, delay));
 }
コード例 #4
0
    public static void PlayClip(this AudioSource audioSource, AudioClipWithVolume clip, float additionalModifier = 1f)
    {
        if (clip == null || clip.Clip == null || clip.VolumeModifier < 1e-4)
        {
            return;
        }

        if (audioSource == null)
        {
            return;
        }

        audioSource.PlayOneShot(clip.Clip, clip.VolumeModifier * additionalModifier);
    }
コード例 #5
0
 public void PlayClip(AudioClipWithVolume clipWithVolume)
 {
     source.PlayOneShot(clipWithVolume.clip, clipWithVolume.volume);
 }
コード例 #6
0
 public void PlayClipAtPoint(AudioClipWithVolume clipWithVolume, Vector3 point)
 {
     AudioSource.PlayClipAtPoint(clipWithVolume.clip, point, clipWithVolume.volume);
 }