Элемент графического интерфейса панели здоровья Unity3d
Я хочу создать панель состояния, используя информацию, которую я сейчас отображаю в графическом интерфейсе. Я хочу, чтобы со временем здоровье уменьшалось (например, таймер обратного отсчета), но увеличивалось на небольшое количество всякий раз, когда игрок собирает объект.
Вот мой текущий код:
using UnityEngine;
using System.Collections;
public class TimeText : MonoBehaviour {
public GUIText timeText;
//countdown
public float timer = 99.00f;
// Update is called once per frame
void Update ()
{
timer -= Time.deltaTime*5;
timeText.text = "Health: " + timer.ToString("0");
}
}
Вот то, что я хотел бы, чтобы мой бар здоровья был похож:
1 ответ
Как упомянуто выше @JoeBlow, избегайте старой механики GUI. Они очень тяжелые, грубые и не способствуют повышению производительности.
@Serlite поставил перед вами вопрос. Это то, что вам нужно.
Для панели здоровья я предлагаю использовать компонент Image Unity UI. Используйте нужное изображение (возможно, то же, которое вы разместили в своем вопросе?) Для индикатора состояния и измените fillAmount
основываясь на вашем timer
переменная (хотя лично я бы переименовал это в нечто вроде "здоровья", чтобы лучше представлять его цель).
Похоже, вы уже позаботились о снижении здоровья с течением времени. Чтобы добавить здоровье, используйте Colliders в качестве триггеров на сцене и OnTriggerEnter или любой из аналогичных методов монобедения по умолчанию для соответствующих объектов.
Я предлагаю пройти через пару учебников, чтобы вы лучше поняли логику программирования в Unity. Надеюсь, это поможет!