private void OnTriggerEnter2D(Collider2D other) { GameObject objTrigger = other.gameObject; if (objTrigger.CompareTag(tagMobs)) { IMob mobs = objTrigger.GetComponent <IMob>(); mobs.SetDamage(damage); mobs.Jerk(_velocity, powerGarbage); mobs.SetFreeze(0.5f); mobs.NoCollision(1.5f); Destroy(gameObject); } if (objTrigger.CompareTag(tagFloor)) { Destroy(gameObject); } }
private IEnumerator AcyncDamage() { permission = false; Debug.Log(furnitures.Count); if (furnitures.Count > 0) { foreach (var furniture in furnitures) { Vector3 vectorFurniture = furniture.transform.position; Vector3 thisVector = transform.position; var forward = vectorFurniture - thisVector; float distance = Vector2.Distance(vectorFurniture, thisVector); IFurniture furnitureComponent = furniture.GetComponent <IFurniture>(); furnitureComponent.Jerk(forward.normalized, powerGarbageFurniture - (distance * weakeningGarbageFurniture)); } } if (mobs.Count > 0) { foreach (var mob in mobs) { Vector3 vectorFurniture = mob.transform.position; Vector3 thisVector = transform.position; var forward = vectorFurniture - thisVector; float distance = Vector2.Distance(vectorFurniture, thisVector); IMob mobComponent = mob.GetComponent <IMob>(); mobComponent.SetFreeze(1.5f); mobComponent.NoCollision(1.5f); mobComponent.SetDamage(damage); mobComponent.Jerk(forward.normalized, powerGarbage - (distance * weakeningGarbage)); } } yield return(new WaitForSeconds(0f)); readyDestroy = true; }