Example #1
0
    void FixedUpdate()
    {
        // se crea el area rectangular (hitbox) del dañador
        crearHitbox();

        //Debug.DrawLine(puntoA, puntoB, Color.red);

        // OverlapArea comprueba si un colisionador cae dentro del hitbox del atacante
        // los colisionadores se van a filtrar por las capas atacables especificadas
        // devuelve un int que indica la cantidad de colliders que entraron al hitbox
        int cantCollidersAtacados = Physics2D.OverlapArea(puntoA, puntoB, filtroContactoAtaque, resultsAtaqueCollider);

        // se recorren todos los colliders que entro al hitbox del dañador
        for (int i = 0; i < cantCollidersAtacados; i++)
        {
            colliderAtacable = resultsAtaqueCollider[i];

            // se obtiene el script dañable del collider que entró al hitbox
            Dañable dañable = colliderAtacable.GetComponent <Dañable>();

            // si el collider tiene el script de dañable
            if (dañable)
            {
                // la colision que entró al hitbox recibe daño, y se pasa como parametro este dañador
                // para indicar cuanto daño debe recibir el dañable
                dañable.recibirDaño(this);

                // si el dañador es una bala y colisiona con un dañable el gameobject de este script (bala) se destruye
                if (this.tag == "Bala")
                {
                    Bala.destruirBala(this.gameObject);
                }
            }
        }
    }
Example #2
0
 // recibe como parametro un objeto de tipo Dañable para obtener la vida actual
 // y establecer los corazones activos e inactivos
 public void activarCorazonesUI(Dañable dañable)
 {
     // se recorren todos los animators de cada icono de vida
     for (int i = 0; i < iconoVidaAnimadores.Length; i++)
     {
         // para cada animator, se establece el parametro active como true o false
         // true = corazon activo (en rojo), false = corazon inactivo (vacio)
         // segun la vida actual del personaje dañable
         iconoVidaAnimadores[i].SetBool("Active", personajeDañable.VidaActual >= i + 1);
     }
 }