Exemplo n.º 1
0
    private IEnumerator MoveDoorCoroutine(bool direction, float duration)
    {
        float end;
        float start       = transform.localPosition.x;
        float elapsedTime = 0;
        float scaledDuration;

        audio.volume = Toolbox.Instance.soundEffectsVolume;
        audio.mute   = false;
        audio.Play();

        if (direction) //meaning we're opening
        {
            if (leftDoor)
            {
                end            = .8f;
                scaledDuration = Mathf.Abs(duration * ((start - 0.8f) / .8f));
            }

            else
            {
                end            = -.8f;
                scaledDuration = Mathf.Abs(duration * ((start + 0.8f) / .8f));
            }
        }
        else //door is closing
        {
            end            = 0f;
            scaledDuration = duration * ((Mathf.Abs(start) / .8f));
        }


        Vector3 newposition = new Vector3(start, 0f, 0f);
        float   ratio       = elapsedTime / scaledDuration;

        while (ratio < 1f)
        {
            elapsedTime  += Time.deltaTime;
            ratio         = elapsedTime / scaledDuration;
            newposition.x = Mathf.Lerp(start, end, TweeningFunctions.EaseIn(ratio));
            this.transform.localPosition = newposition;

            yield return(null);

            if ((gameObject.layer != 17) && !(gameObject.layer + 5 == Toolbox.Instance.GetPlayer().layer))
            {
                audio.mute = true;
            }
            else
            {
                audio.mute = false;
            }
        }
        yield return(null);

        audio.mute = true;
        yield return(new WaitForSeconds(.5f));

        audio.Stop();
    }
Exemplo n.º 2
0
    private IEnumerator OutputVolumeRoutineOn()
    {
        var start   = _volume;
        var end     = 1f;
        var elapsed = 0f;
        var ratio   = 0f;

        while (elapsed < routineDuration)
        {
            yield return(null);

            elapsed += Time.deltaTime;
            ratio    = elapsed / routineDuration;

            _volume = TweeningFunctions.EaseIn(Mathf.Lerp(start, end, ratio));
        }

        _volume    = end;
        _coroutine = null;
    }
Exemplo n.º 3
0
    IEnumerator BeamShrink()
    {
        float end_scale = beam.transform.localScale.z;
        float duration  = beamTime;
        float elapsed   = 0;
        float ratio     = 0;

        beam.transform.localScale = new Vector3(beam.transform.localScale.x, beam.transform.localScale.y, end_scale);

        while (elapsed < duration)
        {
            yield return(null);

            elapsed += Time.deltaTime;
            ratio    = elapsed / duration;

            beam.transform.localScale = new Vector3(beam.transform.localScale.x, beam.transform.localScale.y, end_scale - (TweeningFunctions.EaseIn(ratio) * end_scale));
        }

        beam.transform.localScale = new Vector3(beam.transform.localScale.x, beam.transform.localScale.y, 0);

        //beam.SetActive(false);
        NewTarget();
    }
Exemplo n.º 4
0
    IEnumerator BeamGrow()
    {
        float end_scale = Mathf.Abs(transform.position.y - target.transform.position.y);
        float duration  = beamTime;
        float elapsed   = 0;
        float ratio     = 0;

        beam.transform.localScale = new Vector3(beam.transform.localScale.x, beam.transform.localScale.y, 0);

        while (elapsed < duration)
        {
            yield return(null);

            elapsed += Time.deltaTime;
            ratio    = elapsed / duration;

            beam.transform.localScale = new Vector3(beam.transform.localScale.x, beam.transform.localScale.y, end_scale * TweeningFunctions.EaseIn(ratio));
        }

        beam.transform.localScale = new Vector3(beam.transform.localScale.x, beam.transform.localScale.y, end_scale);
        target.lifePhase          = SpawnableMutation.LifeCycle.Death;
        state = DroneState.Destroying;
    }