Beispiel #1
0
    } //fim de Start()

    // Update is called once per frame
    void Update()
    {
        waypoint      = waypoints[WPindexPointer];                         //mira no waypoint adequado
        pointSpec     = waypoint.GetComponentInParent <WaypointManager>(); //especificacoes do waypoint
        prevWaypoint  = waypoints[pointSpec.alvo.getPrev()];
        prevPointSpec = prevWaypoint.GetComponent <WaypointManager>();     //ponto atual (onde o carro esta no momento)

        rotacao       = pointSpec.alvo.getGiro();
        slow          = prevPointSpec.alvo.getSlow();                       //para ver no inspector
        accel         = pointSpec.alvo.getAcel() * carro.spec.GetMaxAcel(); //aceleracao necessaria para o ponto
        efeitos.pitch = 1.3f * accel;                                       //altera a velocidade do efeito de acordo com a aceleracao, que varia entre 0 e 1

        if (slow)
        {                                                                                      //Se o waypoint atual precisar de desaceleracao
            float distance = Vector3.Distance(prevWaypoint.position, this.transform.position); //distancia ate o ponto
            //Debug.Log(string.Format("Distancia ao ponto {0}", distance)); //verificacoes
            //desacelera quando se aproximar do ponto definido
            if (distance <= prevPointSpec.GetComponentInParent <SphereCollider>().radius - 10)
            { //area de desaceleracao
              //while (distance <= prevPointSpec.GetComponentInParent<SphereCollider>().radius - 5){ //area de desaceleracao
                Slow();
                this.chegou = true; //desabilita a aceleracao
            }
            else
            {
                this.chegou = false; //habilita a aceleracao
            }
        }
        //Se o waypoint nao precisar de desaceleracao
        if (!chegou)
        {
            Accell();
        }
    } //fim de Update()