123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- //======= Copyright (c) Valve Corporation, All rights reserved. ===============
- //
- // Purpose: Play one-shot sounds as opposed to continuos/looping ones
- //
- //=============================================================================
- using UnityEngine;
- using System.Collections;
- namespace Valve.VR.InteractionSystem
- {
- //-------------------------------------------------------------------------
- public class SoundPlayOneshot : MonoBehaviour
- {
- public AudioClip[] waveFiles;
- private AudioSource thisAudioSource;
- public float volMin;
- public float volMax;
- public float pitchMin;
- public float pitchMax;
- public bool playOnAwake;
- //-------------------------------------------------
- void Awake()
- {
- thisAudioSource = GetComponent<AudioSource>();
- if ( playOnAwake )
- {
- Play();
- }
- }
- //-------------------------------------------------
- public void Play()
- {
- if ( thisAudioSource != null && thisAudioSource.isActiveAndEnabled && !Util.IsNullOrEmpty( waveFiles ) )
- {
- //randomly apply a volume between the volume min max
- thisAudioSource.volume = Random.Range( volMin, volMax );
- //randomly apply a pitch between the pitch min max
- thisAudioSource.pitch = Random.Range( pitchMin, pitchMax );
- // play the sound
- thisAudioSource.PlayOneShot( waveFiles[Random.Range( 0, waveFiles.Length )] );
- }
- }
- //-------------------------------------------------
- public void Pause()
- {
- if ( thisAudioSource != null )
- {
- thisAudioSource.Pause();
- }
- }
- //-------------------------------------------------
- public void UnPause()
- {
- if ( thisAudioSource != null )
- {
- thisAudioSource.UnPause();
- }
- }
- }
- }
|