public void OnTriggerEnter(Collider other) { //обработка столкновения с игроком реализована у игрока if (other.CompareTag(TagsHelper.BlasterTag)) { var blasters = other.GetComponent <Blasters>(); if (blasters.Type == Pooling.Blaster.Enemies) { return; } if (ship == null) { GameController.StaticObject.BlasterPool.ReturnObject(other.gameObject, blasters.Type); GameController.StaticObject.EnemyPool.ReturnObject(gameObject); GameController.StaticObject.UpdateScore(); return; } GameController.StaticObject.BlasterPool.ReturnObject(other.gameObject, blasters.Type); ship.ImpactDamage(blasters.ImpactDamage); if (ship.IsDead.Value) { GameController.StaticObject.EnemyPool.ReturnObject(gameObject); GameController.StaticObject.UpdateScore(); } } if (other.CompareTag(TagsHelper.BlockTriggerTag)) { GameController.StaticObject.EnemyPool.ReturnObject(gameObject); } }
/// <summary> /// Наносит цели периодический урон /// </summary> /// <returns></returns> public IEnumerator inflictDamage() { while (_target != null && !_target.IsDead) { _target.ImpactDamage(DamageValue); yield return(new WaitForSeconds(Cooldown)); } //Уведомим что текущая цель уничтожена или недоступна для атаки if (_target != null) { SendMessage("CurrentTargetLose", _target); } }