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 中的编程逻辑。希望对您有所帮助!
我想使用当前在 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 中的编程逻辑。希望对您有所帮助!