Unity3d健康栏GUI元素

Unity3d health bar GUI element

我想使用当前在 GUI 文本中显示的信息创建健康栏。我想要的行为是健康随着时间的推移而减少(就像倒数计时器),但是每当玩家收集一个对象时健康就会少量增加。

这是我当前的代码:

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");

    }
}

我希望我的健康栏看起来像这样:

正如上面提到的@JoeBlow,避免使用旧的 GUI 机制。它们超重、粗糙,而且不是 performance-helpful.

@Serlite 为您分解问题。这些就是你需要的。

对于 health-bar,我建议使用 Unity UI 的 Image 组件。将您想要的图像(可能与您在问题中发布的图像相同?)用于健康栏,并根据您的 timer 变量更改 fillAmount(尽管就个人而言,我会将其重命名为 "health" 以更好地表达其目的)。

看起来你已经注意随着时间的推移降低健康。 要增加生命值,请在场景中使用 Colliders 作为触发器,并在适当的对象上使用 OnTriggerEnter 或任何类似的默认单一行为方法。

我建议您阅读一些在线教程,以便更好地理解 Unity 中的编程逻辑。希望对您有所帮助!