1

我想使用我当前在 GUItext 中显示的信息创建一个健康栏。我想要的行为是让生命值随着时间的推移而减少(如倒数计时器),但每当玩家收集到一个物体时就会增加少量。

这是我当前的代码:

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

    }
}

这是我希望我的健康栏看起来的样子: 在此处输入图像描述

4

1 回答 1

1

正如上面提到的@JoeBlow,请避免使用旧的 GUI 机制。它们超级重、粗糙,而且对性能没有帮助。

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

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

看起来你已经注意到随着时间的推移减少健康。要添加健康,请使用 Colliders 作为场景中的触发器,并在适当的对象上使用OnTriggerEnter或任何类似的默认 monobehavior 方法。

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

于 2016-01-27T18:14:32.303 回答