예제 #1
0
    public IEnumerator CIFrames()
    {
        _invincibleFrames = true;

        float time = 0.0f;

        var oldColor = _renderer.color;

        while (time < 1.0f)
        {
            oldColor   = _renderer.color;
            oldColor.a = InvincibilityCurve.Evaluate(time / InvincibilityCurve.GetCurveLenght());

            _renderer.color = oldColor;

            time += Time.deltaTime;

            yield return(new WaitForEndOfFrame());
        }

        oldColor.a      = 1;
        _renderer.color = oldColor;

        yield return(new WaitForSeconds(0.5f));

        _invincibleFrames = false;
        yield return(null);
    }
예제 #2
0
    public IEnumerator CUnscaledFlash()
    {
        var time = 0.0f;

        Material.SetFloat("_Fade", 0);

        while (time < FlashCurve.GetCurveLenght())
        {
            time += Time.unscaledDeltaTime * Speed;

            Material.SetFloat("_Fade", FlashCurve.Evaluate(time));

            yield return(null);
        }

        Material.SetFloat("_Fade", 0);
        yield return(null);
    }
    private void Update()
    {
        // Pega a cor original para modificar
        Color original = _text.color;

        // Altera o valor de tempo
        _elapsedTime += Time.deltaTime * Speed;

        // Limita o tempo decorrido de acordo com o tamanho da AnimationCurve
        if (_elapsedTime > AnimationCurve.GetCurveLenght())
        {
            _elapsedTime = 0;
        }

        // Modifica valor alfa da cor original
        original.a = AnimationCurve.Evaluate(_elapsedTime);

        // Retorna a cor para o _text
        _text.color = original;
    }