// FixedUpdate evento em determinado intervalo de tempo void FixedUpdate() { //Girar o pedal ou retornar a posição inicial if (virar.getRodando()) { if ((quantoRodou < virar.getLimite()) && (quantoRodou > -virar.getLimite())) { girarPedal(lado); } } else { if (quantoRodou != 0) { girarPedal(-lado); } } setVirar(); quantoRodou = virar.getQuantoRodou(); lado = virar.getLado(); } //Fim do FixedUpdate
//Utilizado FixedUpdate para controlar o tempo em que as ações //descritas serão executadas. void FixedUpdate() { girar(); anda(); // Auterando o lado de acordo com a tecla pressionada if (Input.GetKey(KeyCode.A)) { lado = -1.0f; virar.setRodando(true); } else { if (Input.GetKey(KeyCode.D)) { lado = 1.0f; virar.setRodando(true); } else { virar.setRodando(false); } } //este bloco garante que o limite nao seja extrapolado if (quantoRodou > virar.getLimite()) { quantoRodou = virar.getLimite(); } if (quantoRodou < -(virar.getLimite())) { quantoRodou = -(virar.getLimite()); } if (quantoRodou < virar.getLimite() && quantoRodou > -virar.getLimite() && virar.getRodando()) { quantoRodou += lado; } if (!(Input.anyKey)) //se nao há tecla precionada, carro nao esta rodando. { virar.setRodando(false); andando = false; } if (quantoRodou != 0 && !(virar.getRodando())) { //if (quantoRodou <= virar.getLimite () && quantoRodou >= -virar.getLimite ()) if (lado > 0 && quantoRodou > 0 || lado < 0 && quantoRodou < 0) { quantoRodou += -lado; } else { lado = -lado; } } if (quantoRodou == 0) { lado = 0; } //Adicionando valores encapsulados na referencia Virar. virar.setLado(lado); virar.setQuantoRodou(quantoRodou); } //Fim do FixedUpdate