Exemplo n.º 1
0
    private void FixedUpdate()
    {
        if (locked)
        {
            return;
        }
        if (clips.Length == 0)
        {
            return;
        }
        if (!CachedRigidbody)
        {
            return;
        }

        if (AlsoOnAngularSlow && CachedRigidbody.angularVelocity.magnitude < .1f && angularVelocity.magnitude > .1f)
        {
            CachedAudioSource.PlayOneShot(clips[Random.Range(0, clips.Length)], (angularVelocity.magnitude - CachedRigidbody.angularVelocity.magnitude) * .5f);
        }

        if (AlsoOnSlow && velocity.magnitude > .1 && CachedRigidbody.velocity.magnitude < .1)
        {
            CachedAudioSource.PlayOneShot(clips[Random.Range(0, clips.Length)], (velocity.magnitude - CachedRigidbody.velocity.magnitude));
        }

        angularVelocity = CachedRigidbody.angularVelocity;
        velocity        = CachedRigidbody.velocity;
    }
Exemplo n.º 2
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="audioToCache"></param>
    private void AudioSourceFinished(CachedAudioSource audioToCache)
    {
        audioToCache.audioSource.transform.parent = transform;
        audioToCache.audioSource.gameObject.SetActive(false);

        _inactiveAudioSources.Add(audioToCache);
    }
Exemplo n.º 3
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="index"></param>
    /// <param name="ignorePause"></param>
    private void PlayAudioCue(int index, bool ignorePause)
    {
        if (audioCues[index].clips.Length == 0)
        {
            return;
        }

        CachedAudioSource source = GetAudioSource(index);

        source.audioSource.clip   = audioCues[index].clips[Random.Range(0, audioCues[index].clips.Length)];
        source.audioSource.pitch  = Random.Range(audioCues[index].pitch.minimum, audioCues[index].pitch.maximum);
        source.audioSource.volume = Random.Range(audioCues[index].volume.minimum, audioCues[index].volume.maximum);
        source.audioSource.ignoreListenerPause = ignorePause;

        // We only assign a group if a custom AudioSource is not present.
        if (!audioCues[index].UsesCustomAudioSource())
        {
            if (audioCues[index].UsesCustomAudioGroup())
            {
                source.audioSource.outputAudioMixerGroup = audioCues[index].group;
            }
        }

        source.audioSource.gameObject.SetActive(true);
        source.audioSource.transform.parent = transform;
        source.audioSource.Play();

        _activeAudioSources.Add(source);
    }
 private void EndTransfer()
 {
     Whinch.SetSoundState(false);
     CachedAudioSource.PlayOneShot(ArrivalSound);
     CurrentFloor = TargetFloor;
     TryOpenDoors();
 }
Exemplo n.º 5
0
        public void Stop(float fadeTime = 0f)
        {
            StopAllCoroutines();

            if (fadeTime > 0)
            {
                SetVolumeTo(0f, fadeTime, delegate()
                {
                    CachedAudioSource.Stop();
                    CachedAudioSource.clip = null;
                });
            }
            else
            {
                CachedAudioSource.Stop();
                CachedAudioSource.clip = null;
            }

            isPlaying = false;
            StopEvent(this);

            //TODO get recycling of sounds working
            Destroy(gameObject);
            //ObjectPool.Recycle(gameObject);
        }
Exemplo n.º 6
0
        public void Play(Sound sound, float fadeTime = 0f)
        {
            StopAllCoroutines();
            CachedAudioSource.Stop();

            CurrentSound = sound;
            Volume       = fadeTime == 0f ? VolumeFromSettings : 0f;

            CachedAudioSource.clip         = sound.audioClip;
            CachedAudioSource.loop         = sound.loop;
            CachedAudioSource.pitch        = Random.Range(sound.minPitch, sound.maxPitch);
            CachedAudioSource.spatialBlend = sound.spatialBlend;
            CachedAudioSource.volume       = sound.volume;
            CachedAudioSource.loop         = sound.loop;

            CachedAudioSource.Play();

            //TODO dont relly on this
            CachedAudioSource.spatialBlend = 0;

            if (fadeTime > 0f)
            {
                SetVolumeTo(VolumeFromSettings, fadeTime);
            }

            isPlaying = true;
            PlayEvent(this);
        }
Exemplo n.º 7
0
	/// <summary> 
	/// Plays sound effect when shell collides with objects.
	/// </summary>
	protected override void OnCollisionEnter (Collision col)
	{
		base.OnCollisionEnter (col);

		if (CachedAudioSource != null && _collisionSound != null) {
			CachedAudioSource.PlayOneShot (_collisionSound);
		}
	}
Exemplo n.º 8
0
 private void OnCollisionEnter(Collision collision)
 {
     if (locked)
     {
         return;
     }
     if (clips.Length > 0)
     {
         CachedAudioSource.PlayOneShot(clips[Random.Range(0, clips.Length)], collision.relativeVelocity.magnitude * .5f);
     }
 }
Exemplo n.º 9
0
    public void Update()
    {
        for (int i = 0; i < _activeAudioSources.Count; i++)
        {
            CachedAudioSource activeSource = _activeAudioSources[i];
            if (!activeSource.audioSource.isPlaying)
            {
                AudioSourceFinished(activeSource);

                _activeAudioSources.RemoveAt(i--);
            }
        }
    }
Exemplo n.º 10
0
    protected override void OnUpdate()
    {
        base.OnUpdate();

        if (Input.GetKeyDown(_captureKey))
        {
            // Application.CaptureScreenshot(OutputCaptureFileTitle);

            if (CachedAudioSource != null && _captureSound != null)
            {
                CachedAudioSource.PlayOneShot(_captureSound);
            }
            _index++;

            Debug.Log("Frame Captured, saved as " + Application.dataPath + OutputCaptureFileTitle);
        }
    }
Exemplo n.º 11
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="index"></param>
    /// <returns></returns>
    private CachedAudioSource GetAudioSource(int index)
    {
        if (audioCues[index].UsesCustomAudioSource())
        {
            for (int i = 0; i < _inactiveAudioSources.Count; i++)
            {
                if (index == _inactiveAudioSources[i].customId)
                {
                    CachedAudioSource source = _inactiveAudioSources[i];

                    _inactiveAudioSources.RemoveAt(i);

                    return(source);
                }
            }

            CachedAudioSource customSource = new CachedAudioSource();
            customSource.customId    = index;
            customSource.audioSource = Instantiate(audioCues[index].source);
            customSource.audioSource.gameObject.name = "audio_source_" + (_activeAudioSources.Count + _inactiveAudioSources.Count + 1);

            return(customSource);
        }

        if (_inactiveAudioSources.Count > 0)
        {
            CachedAudioSource source = _inactiveAudioSources[_inactiveAudioSources.Count - 1];

            _inactiveAudioSources.RemoveAt(_inactiveAudioSources.Count - 1);

            return(source);
        }

        CachedAudioSource newSource = new CachedAudioSource();

        newSource.audioSource             = new GameObject("audio_source_" + (_activeAudioSources.Count + _inactiveAudioSources.Count + 1)).AddComponent <AudioSource>();
        newSource.audioSource.playOnAwake = false;

        return(newSource);
    }