Элемент графического интерфейса панели здоровья 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. Надеюсь, это поможет!

Другие вопросы по тегам