Exemple #1
0
    //*****************************************************************
    // UPDATE : chamado por frame renderizado = faz os movimentos
    //
    //*****************************************************************

    void Update()
    {
        //MAQUINA ESTADOS SIMPLES
        switch (acao)
        {
        //PARADO : pronto
        case ObjetoAcao.pronto:

            break;

        //MOVENDO :
        case ObjetoAcao.movendo:

            //posicao: vai até o destino mundo 3D - slerp aproximação suave
            transform.position = Vector3.Slerp(transform.position, posicao_destino, tempo_movimento * Time.deltaTime);

            //percebe chegou
            if (Vector3.Distance(transform.position, posicao_destino) < 0.1f)
            {
                transform.position = posicao_destino;
                acao = ObjetoAcao.pronto;
            }

            break;

        //ACERTA ESCALA representativa
        case ObjetoAcao.escala:

            float altura = 10 * (valor / Info.meta_valor_total);

            if (transform.localScale.y < altura)
            {
                //ajusta escala e corrige altura 3D
                transform.localScale += new Vector3(0, 0.4f, 0) * Time.deltaTime;
                transform.position   += new Vector3(0, 0.2f, 0) * Time.deltaTime;

                if (transform.localScale.y >= altura)
                {
                    transform.localScale = new Vector3(transform.localScale.x, altura, transform.localScale.z);
                    acao = ObjetoAcao.pronto;
                }
            }

            break;
        }
    }
Exemple #2
0
    //*****************************************************************
    // ATUALIZA ESCALA : ativa animacao basica
    //
    //*****************************************************************

    public void AtualizaValor(float quanto)
    {
        valor = quanto;
        acao  = ObjetoAcao.escala;
    }