private void Update() { // SI EL JUGADOR AGARRA UNA GRANADA if (tag == "Jugador" && inv.GranadaDisponible() == true) { // INICIA UN TEMPORIZADOR tiempo += Time.deltaTime; // SE ACTIVA LA TEXTURA EN ESCENA (ES UNA CALAVERA ARRIBA DEL JUGADOR) texturatimer.SetActive(true); // HAY UN CONTADOR QUE CAMBIA DE VALOR CADA SEGUNDO QUE PASA if (contador == 0) { // SE ESCRIBE UN TEXTO EN EL OBJETO "TimerBomba" Y SE LE CAMBIA EL COLOR timerbomba.text = "3"; timerbomba.color = Color.green; // SE SUMA 1 AL CONTADOR contador++; } // SI PASÓ 1 SEGUNDO Y EL CONTADOR ES 1 if (tiempo > 1 && contador == 1) { // SE CAMBIA EL COLOR DE LA MIRA Y EL TEXTO CambiarColor(); timerbomba.text = "2"; } // SI PASARON 2 SEGUNDOS Y EL CONTADOR ES 2 if (tiempo > 2 && contador == 2) { // SE CAMBIA EL COLOR DE LA MIRA Y EL TEXTO CambiarColor(); timerbomba.text = "1"; } // SI PASARON 3 SEGUNDOS if (tiempo > 3) { // MUERE EL JUGADOR v.ModificarVida(-1); } } // SI EL JUGADOR DISPARÓ LA GRANADA else if (tag == "Jugador" && inv.GranadaDisponible() == false) { // SE DESACTIVA "TexturaTimer", SE BORRA EL TEXTO DE "TimerBomba" Y SE RESETEAN EL TEMPORIZADOR Y EL CONTADOR. texturatimer.SetActive(false); timerbomba.text = ""; contador = 0; tiempo = 0; } }
public void OnCollisionEnter(Collision c) { // SI LOS OBJETOS QUE CHOCAN SON EL JUGADOR Y EL EFECTO DE UNA GRANADA if (c.gameObject.tag == "Jugador" && gameObject.tag == "EfectoGranada") { // SE CREA UN OBJETO DE LA CLASE "Vida" Y SE LE ASIGNA EL COMPONENTE "Vida" DEL JUGADOR Vida v = c.gameObject.GetComponent <Vida> (); // SE FIJA QUE EL OBJETO "Vida" NO ESTÉ VACIO (EN NUESTRO CASO SIEMPRE VA A TENER UN VALOR PORQUE LA UNICA FORMA DE LLEGAR A ESTE IF ES SI CHOCAMOS CONTRA EL JUGADOR, Y EL JUGADOR SIEMPRE TIENE VIDA) if (v != null) { //SE MODIFICA LA VIDA DEL JUGADOR MEDIANTE EL EVENTO "ModificarVida", ENVIANDO EL DAÑO COMO PARAMETRO v.ModificarVida(daño); } } }
public void Update() { // EL JUGADOR MUERE EN AMBOS CASOS: // SI LA POSICION DEL JUGADOR EN EL EJE X ES MENOR A LA QUE ASIGNE EN "x" if (transform.position.x < x) { Vida v = GetComponent <Vida>(); if (v != null) { v.ModificarVida(daño); } } // SI LA POSICION DEL JUGADOR EN EL EJE Y ES MENOR A LA QUE ASIGNE EN "y" if (transform.position.y < y) { Vida v = GetComponent <Vida>(); if (v != null) { v.ModificarVida(daño); } } }
public void OnTriggerEnter(Collider c) { // ESTE IF ES IGUAL AL DE ARRIBA (OnCollisionEnter), SOLO QUE EL LASER FUNCIONA COMO TRIGGER Y LAS EXPLOSIONES NO if (c.gameObject.tag == "Jugador" && gameObject.tag == "Laser") { Vida v = c.gameObject.GetComponent <Vida> (); if (v != null) { v.ModificarVida(daño); } } // SI LOS OBJETOS QUE CHOCAN SON EL ENEMIGO Y LA GRANADA DEL JUGADOR if (c.gameObject.tag == "Enemigo" && gameObject.tag == "GranadaJugador") { // SE TRAE EL COMPONENTE "Vida" DEL ENEMIGO Vida v = c.GetComponent <Vida> (); if (v != null) { // SE TRAE EL AUDIO "pierdevida" DEL ENEMIGO Y DESPUES SE REPRODUCE sonido4 = c.gameObject.GetComponent <AudioSource>(); sonido4.Play(); // SE MODIFICA LA VIDA DEL ENEMIGO v.ModificarVida(daño); // SE DESTRUYE LA GRANADA DEL JUGADOR Destroy(gameObject); if (v.getVida() == 0) { // GENERO UN NUMERO RANDOM ENTRE 0 Y 2 PARA LA CANCION CUANDO SE DESTRUYE AL ROBOT (HAY 2 CANCIONES Y TIENEN UN 50% DE REPRODUCIRSE CADA UNA) float numeroRandom = Random.Range(0, 2); // GUARDO TODOS LOS SONIDOS DEL OBJETO EN ESCENA "CosasGenerales" EN UN VECTOR (ES UN CONJUNTO DE VARIABLES DE UN MISMO TIPO) DE AUDIOSOURCES Y LOS VOY ASIGNANDO EN VARIABLES INDEPENDIENTES DEL TIPO AUDIOSOURCES // EL ORDEN EN EL QUE ESTAN GUARDADOS EN EL VECTOR ES EL MISMO QUE COMO ESTAN EN EL OBJETO "CosasGenerales" sonidos = GameObject.Find("CosasGenerales").GetComponents <AudioSource> (); // ES LA MUSICA INICIAL sonido1 = sonidos[0]; // SON LAS CANCIONES DE VICTORIA sonido2 = sonidos[1]; sonido3 = sonidos[2]; // ES LA MUSICA SECRETA sonido5 = sonidos[4]; // CUANDO SE GANA EL JUEGO, HAY QUE DEJAR DE REPRODUCIR LA MUSICA INICIAL O LA SECRETA sonido1.Stop(); sonido5.Stop(); // SE REPRODUCE UNA DE LAS 2 CANCIONES DE VICTORIA SEGUN EL VALOR DEL NUMERO RANDOM if (numeroRandom >= 0 && numeroRandom < 1) { sonido2.Play(); } else if (numeroRandom >= 1 && numeroRandom <= 2) { sonido3.Play(); } } } } }