// 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); } }
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); }
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); }
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>(); }