void OnCollisionEnter2D(Collision2D col) { switch (col.gameObject.tag) { case "FloorEnemy": // Quitar vida al enemigo. FloorEnemy c = (FloorEnemy)col.gameObject.GetComponent("FloorEnemy"); if (c == null) { // Si no se trata del FloorEnemy, con toda seguridad se trata del FloorEnemyType2. FloorEnemyType2 ct2 = (FloorEnemyType2)col.gameObject.GetComponent("FloorEnemyType2"); ct2.damage(power); resistanceAgainstBulletImpulse(ct2.gameObject); } else { c.damage(power); resistanceAgainstBulletImpulse(c.gameObject); } // Eliminar bala. Destroy(this.gameObject); break; case "Enemy": AirEnemy c1 = (AirEnemy)col.gameObject.GetComponent("AirEnemy"); if (c1 == null) { // Si no se trata del AirEnemy, con toda seguridad se trata del AirEnemyType2. AirEnemyType2 c1t2 = (AirEnemyType2)col.gameObject.GetComponent("AirEnemyType2"); c1t2.damage(power); } else { c1.damage(power); } Destroy(this.gameObject); break; case "Boss": BossGiantRobot b = (BossGiantRobot)col.gameObject.GetComponent("BossGiantRobot"); b.damage(power); Destroy(this.gameObject); break; } }
void markAsFromBoss(GameObject enemy) { FloorEnemy floor = (FloorEnemy)enemy.GetComponent("FloorEnemy"); if (floor != null) { floor.createdFromBoss(boss); } else { AirEnemyType2 airType2 = (AirEnemyType2)enemy.GetComponent("AirEnemyType2"); if (airType2 != null) { airType2.createdFromBoss(boss); } else { AirEnemy air = (AirEnemy)enemy.GetComponent("AirEnemy"); air.createdFromBoss(boss); } } }