Pro_Unit

Health

May 18th, 2020
304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.21 KB | None | 0 0
  1. using System;
  2.  
  3. using UnityEngine;
  4.  
  5. public class Health : MonoBehaviour
  6. {
  7.     [SerializeField] private int _maxHelth = 100;//* Максимальое здоровье
  8.     private int _currentHelth = 100; //* Текущее здоровье
  9.  
  10.     public event Action OnDeath = null; //* Событие смерти
  11.  
  12.     private void OnEnable()
  13.     {
  14.          //* сбрасываем здоровье к максимальному.
  15.          //* это нужно например при спавне врага,
  16.          //* чтобы заспавнинв того же врага, после его смерти,
  17.          //* текущее здоробе не было рано 0
  18.         _currentHelth = _maxHelth;
  19.         //* Зануляем событие чтобы не было ошибок
  20.         OnDeath = null;
  21.     }
  22.     /// <summary>
  23.     /// Получение урона
  24.     /// </summary>
  25.     /// <param name="damage">Наносимый урон</param>
  26.     public void TakeDamage(int damage)
  27.     {
  28.         _currentHelth -= damage;
  29.  
  30.         if (_currentHelth <= 0)
  31.         {
  32.             if (OnDeath != null)
  33.             {
  34.                 OnDeath.Invoke();
  35.             }
  36.         }
  37.     }
  38.  
  39. }
Add Comment
Please, Sign In to add comment