public void ActivarEnemigos(Collider2D collision) { mov8d = collision.GetComponent <Movimiento8D>(); x = transform.childCount; //es un bucle que va decrementando la x ya que van saliendo los hijos //según van siendo activados y se les pasa una referencia al jugador while (x > 0) { hijo = transform.GetChild(x - 1).gameObject; movEnemig = hijo.GetComponent <MovEnemig>(); bomb = hijo.GetComponent <Bomba>(); arquero = hijo.GetComponent <Arquer>(); if (movEnemig != null) { movEnemig.CogerJugador(collision.gameObject); movEnemig.Activar(true); } if (bomb != null) { bomb.enabled = true; bomb.CogerJugador(collision.gameObject); } if (arquero != null) { arquero.enabled = true; arquero.CogeJugador(collision.gameObject); } hijo.transform.SetParent(null); x = transform.childCount; } }
//Este metodo no se usa, pero puede ser util, no borrar void EnciendeHijos() { x = transform.childCount; //es un bucle que va decrementando la x ya que van saliendo los hijos while (x > 0) { hijo = transform.GetChild(x - 1).gameObject; movEnemig = hijo.GetComponent <MovEnemig>(); movEnemig.Activar(true); hijo.transform.SetParent(null); Debug.Log("Enciende hijo" + x); Debug.Log(x); x = transform.childCount; } }
private void OnTriggerEnter2D(Collider2D collision) { Rigidbody2D enemy = collision.gameObject.GetComponent <Rigidbody2D>(); if (collision.gameObject.GetComponent <Movimiento8D>() != null) { if (enemy != null) { movplayer = enemy.GetComponent <Movimiento8D>(); movplayer.enabled = false; Debug.Log("Entra personaje"); Vector2 difference = collision.transform.position - transform.position; enemy.AddForce(difference.normalized * fuerza, ForceMode2D.Impulse); Invoke("ActivaMov8D", 2f); GameManager.instance.TakeDamage(damage); } } else if (collision.gameObject.GetComponent <MovEnemig>() != null) { if (enemy != null) { movenemig = enemy.GetComponent <MovEnemig>(); movenemig.enabled = false; Vector2 difference = collision.transform.position - transform.position; enemy.AddForce(difference.normalized * fuerza, ForceMode2D.Impulse); EnemyHealth enemyHealth = collision.GetComponent <EnemyHealth>(); enemyHealth.TakeDamage(damage); } } /* * if (collision.gameObject.tag == "Mapa") * { * Debug.Log("ChocaPared"); * if (ejeX) * { * dirX = dirX * -1; * } * * else * dirY = dirY * -1; * } */ }
private void Ataca() { ataque = true; while (lista.DamePrimeroParaEmpujar() != null) { // para que este if si lo haces true en el mismo metodo if (ataque) { GameObject enemigo = lista.DamePrimeroParaEmpujar(); if (enemigo != null) { Rigidbody2D enemy = enemigo.GetComponent <Rigidbody2D>(); if (enemy != null) { //Para saber de que tipo es cada enemigo movenemig = enemigo.GetComponent <MovEnemig>(); movenemig1 = enemigo.GetComponent <MovEnemig1>(); arquero = enemigo.GetComponent <Arquer>(); bomb = enemigo.GetComponent <Bomba>(); bossarquero = enemigo.GetComponent <BossManager2>(); //Dependiendo del enemigo con el que luche hace un a cosa u otra if (movenemig != null) { movenemig.enabled = false; Vector2 difference = enemigo.transform.position - transform.position; enemy.AddForce(difference.normalized * fuerza, ForceMode2D.Impulse); EnemyHealth vidaEnmigo = enemy.GetComponent <EnemyHealth>(); vidaEnmigo.TakeDamage(damage); } else if (movenemig1 != null) { EnemyHealth vidaEnmigo = enemy.GetComponent <EnemyHealth>(); vidaEnmigo.TakeDamage(damage); } else if (arquero != null) { //no le emuja ya que lo mata de un toque EnemyHealth vidaEnmigo = enemy.GetComponent <EnemyHealth>(); vidaEnmigo.TakeDamage(damage); arquero.enabled = false; } else if (bomb != null) { EnemyHealth vidaEnmigo = enemy.GetComponent <EnemyHealth>(); vidaEnmigo.TakeDamage(damage); } else if (bossarquero != null) { EnemyHealth vidaEnmigo = enemy.GetComponent <EnemyHealth>(); vidaEnmigo.TakeDamage(damage); } } } } lista.AvanzaPrimer(); //Hace que el primer enemigo de la lista sea el segundo, eliminando el primero } VelOriginal(); trigger.enabled = false;//para que si se ha quedado alguien en el trigger se veulva a meter en la lista tras atacar trigger.enabled = true; }