void FixedUpdate() { if (sensor.Bateria() <= 0) { return; } if (sensor.CercaDePared()) { actuador.Flotar(); actuador.Detener(); } else { actuador.Flotar(); actuador.Adelante(); } }
/** * Metodo que se llama cada frame. * */ void FixedUpdate() { float bateri = sensor.Bateria(); if (bateri <= 0) { Debug.Log("Bateria murio"); return; } if (bateri <= 450 && haciaDonde) { cambiaVista(); //Si la bateria llega a la mitad, entonces cambia su objetivo a la base de carga } actuador.Detener(); diferencias = playerObject.position - transform.position; //Obtiene vector de diferencia entre nuestra posicion y nuestro objetivo. if (sensor.TocandoPared()) { Debug.Log("Choco con pared"); } seguimientoCiego(diferencias); actuador.Flotar(); }
/// <summary> /// Los siguientes metodos sirven para aplicar las acciones relacionadas al mismo nombre del metodo, /// todos aplican el estado de flotar para que el dron no se caiga o ascienda al "infinito". /// /// El metodo de Retornar() detiene todas las acciones del dron mientras la funcion de Vector3.Lerp() regresa al /// dron a la base de carga y evitar que otros movimientos del dron interfieran durante el proceso. /// </summary> void Avanzar() { actuador.Flotar(); actuador.Adelante(); }
// Update y FixedUpdate son similares en uso, pero por regla general se recomienda usar // FixedUpdate para calcular elementos físicos como el uso de Rigidbody void FixedUpdate() { // El agente no realiza ninguna acción si no tiene batería if (sensor.Bateria() <= 0) { return; } // A continuación se muestran ejemplos de uso de actuadores y sensores // para ser utilizados de manera manual (por una persona): if (Input.GetKey(KeyCode.I)) { actuador.Ascender(); } if (Input.GetKey(KeyCode.K)) { actuador.Descender(); } if (!Input.GetKey(KeyCode.I) && !Input.GetKey(KeyCode.K)) { actuador.Flotar(); } if (Input.GetAxis("Vertical") > 0) { actuador.Adelante(); } if (Input.GetAxis("Vertical") < 0) { actuador.Atras(); } if (Input.GetKey(KeyCode.J)) { actuador.GirarIzquierda(); } if (Input.GetKey(KeyCode.L)) { actuador.GirarDerecha(); } if (Input.GetAxis("Horizontal") > 0) { actuador.Derecha(); } if (Input.GetAxis("Horizontal") < 0) { actuador.Izquierda(); } if (sensor.TocandoBasura()) { Debug.Log("Tocando basura!"); actuador.Limpiar(sensor.GetBasura()); } if (sensor.TocandoPared()) { Debug.Log("Tocando pared!"); } if (sensor.CercaDeBasura()) { Debug.Log("Cerca de una basura!"); } if (sensor.CercaDePared()) { Debug.Log("Cerca de una pared!"); } if (sensor.FrenteAPared()) { Debug.Log("Frente a pared!"); } if (Input.GetKey(KeyCode.F)) { actuador.Detener(); } if (Input.GetKey(KeyCode.G)) { Debug.Log(sensor.Ubicacion()); } }