Beispiel #1
0
 // Use this for initialization
 void Start()
 {
     if (!biarticulado)
     {
         biarticulado = FindObjectOfType <Biarticulado>();
     }
 }
 // Use this for initialization
 void Start()
 {
     if (!biarticulado)
     {
         biarticulado = GetComponentInParent <VagaoBiarticulado>().biarticulado;
     }
 }
    // Use this for initialization
    void Start()
    {
        biarticulado = GetComponent <Biarticulado>();
        conAuto      = GetComponent <ControleAutomatico>();

        if (!conAuto)
        {
            Debug.LogWarning("ChecaObstaculos não pode ser utilizado sem um ControleAutomatico, e por isso foi DESTRUIDO!");
            Destroy(this);
        }
    }
Beispiel #4
0
    public static float MenorValor_SteeringAngle(Biarticulado bi)
    {
        float result = float.NaN;

        foreach (VagaoBiarticulado v in bi.vagoes)
        {
            if (float.IsNaN(result) || (v.canSteer && result > v.maxSteeringAngle))
            {
                result = v.maxSteeringAngle;
            }
        }
        return(result);
    }
Beispiel #5
0
    public static float DistanciaDeParada(Biarticulado bi)
    {
        float steeringAngle = MenorValor_SteeringAngle(bi);
        float result        = bi.distanciaDeFrenagem;

        //Distancia para frenagem é proporcional à velocidade atual dividida pela distância de frenagem padrão.
        result *= (bi.velocidadeAtual / bi.velocidadeMaxima);
        //Mas caso o waypoint seguinte não seja uma parada de ônibus e não forme uma curva, a frenagem é reduzida.
        if (bi.wp_proximo && bi.wp_proximo.tipoWaypoint == CVP.ModuloOnibus.TipoWaypont.COMUM)
        {
            result *= (Mathf.Clamp(bi.wps_angulo, 0, steeringAngle) / steeringAngle);
        }
        return(result);
    }
Beispiel #6
0
    public void WaypointWebServiceAlcancado(Rota_Waypoint waypoint, Biarticulado biarticulado)
    {
        foreach (var item in interfaceGrafica.rotaWebService.dadosDosWPWeb)
        {
            if (item.waypoint == waypoint)
            {
                item.waypoint.dt_horarioAlcancado = dt_simulationCurrentTime;
                TimeSpan ts = item.waypoint.dt_horarioAlcancado - item.waypoint.dt_horarioParaAlcancar;
                float    adiantamentoOuAtraso = (float)ts.TotalSeconds;

                int id = interfaceGrafica.rotaWebService.dadosDosWPWeb.IndexOf(item);
                item.AjustarTextos(true, id + 1,
                                   item.waypoint.posOrigGPS, item.waypoint.posOrigXYZ, item.waypoint.posAjustXYZ,
                                   item.waypoint.dt_horarioParaAlcancar.ToString(formatoDateTime), item.waypoint.dt_horarioAlcancado.ToString(formatoDateTime), adiantamentoOuAtraso);

                biarticulado.tempoAtrasadoOuAdiantado += adiantamentoOuAtraso;
                break;
            }
        }
    }
    private void OnTriggerEnter(Collider other)
    {
        Biarticulado biarticulado = other.gameObject.GetComponent <Biarticulado>();

        if (!biarticulado)
        {
            biarticulado = other.gameObject.GetComponentInParent <Biarticulado>();
        }

        if (biarticulado)
        {
            //Waypoints tipo WEBSERVICE não determinam o trajeto específico e nem aonde cada ônibus para.
            //A função destes é ajudar a determinar se o veíuclo está adiantado ou atrasado em relação aos posicionamentos.
            if (tipoWaypoint == TipoWaypont.WEBSERVICE && biarticulado.rota == rota)
            {
                gerenciadorDeCena.WaypointWebServiceAlcancado(this, biarticulado);
            }
            else
            {
                biarticulado.AtualizarRota(this);
            }
        }
    }
 // Use this for initialization
 void Start()
 {
     biarticulado = GetComponent <Biarticulado>();
 }