//Выводит бар, показывающий состояние здоровья игрока
using UnityEngine;
using System.Collections;
public class EnemyHealth : MonoBehaviour {
//Публичные переменные для настроек
public int maxHealth = 100;
//Блок переменных локального пользователя
private int _curHealth = 100;
private float healthBarLength;
//Производится начальные расчеты при создании объекта
void Start () {
//Задаем начальную ширину бара здоровья
healthBarLength = Screen.width /2;
//предотвращаем ввод неправильного значения
//максимального здоровья
if(maxHealth<1) maxHealth=1;
_curHealth = maxHealth;
}
// Update is called once per frame
void Update () {
}
//Выводится сам бар посредством графического игтерфейса
void OnGUI(){
//Выводится бар состояния здоровья и числовые значения его
GUI.Box(new Rect(10,40,healthBarLength,20),_curHealth + "/" + maxHealth);
}
//производим расчет нужной ширины бара состояния здоровьяююю
public void AddjustCurrentHealth(int adj){
//adj - это изменение состояния здоровья, а не его значение
//_curHealth = adj; - старое значение
_curHealth += adj; //новое значение
//блок по предотвращению получения неверного состояния здоровья
//меньше нуля и больше максимума
//так как изменяем здоровье извне
if(_curHealth < 0) _curHealth = 0;
if(_curHealth > maxHealth) _curHealth = maxHealth;
//Расчет бара непосредственно
healthBarLength = (Screen.width / 2) * (_curHealth / (float)maxHealth);
if(_curHealth == 0){
Destroy(GameObject, 1);
}
}
}