//***************************************************************** // 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; } }
//***************************************************************** // ATUALIZA ESCALA : ativa animacao basica // //***************************************************************** public void AtualizaValor(float quanto) { valor = quanto; acao = ObjetoAcao.escala; }