private void OnCollisionEnter2D(Collision2D collision) { //guardo si la colisión tenía un nombreScriptBala o no para saber si es una bala VelBala scriptBala = collision.gameObject.GetComponent <VelBala>(); Danyo scriptDanyo = collision.gameObject.GetComponent <Danyo>(); if (scriptBala != null && scriptDanyo == null) //si la colisión era una bala y no era enemigo { Destroy(this.gameObject); //Este objeto (muro) se destruye } }
private void Start() { bala = GetComponent <VelBala>(); if (bala != null) { CD = 0f; //Si es una bala, no tiene cooldown } else { CD = 1f; } time = 0; }
private void OnCollisionEnter2D(Collision2D collision) { VelBala colisionante = collision.gameObject.GetComponent <VelBala>(); if (colisionante != null && !colisionante.IsEnemy()) //si la colisión era una bala { vida--; if (vida <= 0) { //tengo que cominicarle que se ha muerto al script padre para que leugo lo respawnee respo.GetComponent <EnemyRespawn>().IsDead(); AudioManager.instance.PlaySound("morirenemigo", "play"); GameManager.instance.SumaPuntuacion(puntuacion); if (drop != null && GameManager.instance != null) { int numDrop; //La manera de saber que robot se hace mirando si tiene o no el scriptDisparo if (scriptDisparo != null) //si tiene scriptDisparo es un robot a distancia { numDrop = Random.Range(1, 3); //por lo que dropea entre 1 y 2 (3 sin incluir) } else //si no tiene scriptDisparo no es un robot a distancia { //(es un robot a melee) numDrop = Random.Range(0, 2); //por lo que dropea entre 0 y 1 (2 sin incluir) } //DROPEO int cont = 0; while (cont < numDrop) { Vector3 posicion = new Vector2(this.transform.position.x, this.transform.position.y); Instantiate(drop, posicion, Quaternion.identity); //ESTÁ MAL cont++; } } Destroy(this.gameObject); //Este objeto (Enemigo/muro) se destruye } } }