示例#1
0
 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);
     }
 }
示例#2
0
 /// <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);
     }
 }