如何延迟在 Unity C# 中为播放器添加更多健康?
How to delay add more health to player in Unity C#?
C# Unity3D 当玩家受到攻击时我想缓慢添加玩家生命值直到 100%。
我尝试通过使用 PlayerHealth++ 通过此代码添加更多健康,但添加健康使玩家永不死亡的速度非常快。如何解决?
public class HealthScript : MonoBehaviour
{
[SerializeField] Text HealthText;
void Start()
{
HealthText.text = SaveScript.PlayerHealth + "%";
}
void Update()
{
SaveScript.PlayerHealth++;
HealthText.text = SaveScript.PlayerHealth + "%";
}
}
简单的方法是在该脚本上放置一个间隔参数 - 一个浮点数,它可以是添加健康之前需要过期的秒数。
保留第二个变量,它是一个时间累加器。每个更新方法都将 Time.deltaTime 添加到此累加器变量。
最后,如果这个累加器大于间隔,则增加玩家的生命值并将累加器重置为 0。
public class HealthScript : MonoBehaviour
{
[Tooltip("How long in seconds before health is incremented")]
public float HealthInterval = 5.0f;
private float healthIntervalAccumulator;
[SerializeField] Text HealthText;
void Start()
{
HealthText.text = SaveScript.PlayerHealth + "%";
}
void Update()
{
if ((healthIntervalAccumulator += Time.deltaTime) >= HealthInterval)
{
healthIntervalAccumulator = 0.0f;
SaveScript.PlayerHealth++;
HealthText.text = SaveScript.PlayerHealth + "%";
}
}
}
C# Unity3D 当玩家受到攻击时我想缓慢添加玩家生命值直到 100%。 我尝试通过使用 PlayerHealth++ 通过此代码添加更多健康,但添加健康使玩家永不死亡的速度非常快。如何解决?
public class HealthScript : MonoBehaviour
{
[SerializeField] Text HealthText;
void Start()
{
HealthText.text = SaveScript.PlayerHealth + "%";
}
void Update()
{
SaveScript.PlayerHealth++;
HealthText.text = SaveScript.PlayerHealth + "%";
}
}
简单的方法是在该脚本上放置一个间隔参数 - 一个浮点数,它可以是添加健康之前需要过期的秒数。
保留第二个变量,它是一个时间累加器。每个更新方法都将 Time.deltaTime 添加到此累加器变量。
最后,如果这个累加器大于间隔,则增加玩家的生命值并将累加器重置为 0。
public class HealthScript : MonoBehaviour
{
[Tooltip("How long in seconds before health is incremented")]
public float HealthInterval = 5.0f;
private float healthIntervalAccumulator;
[SerializeField] Text HealthText;
void Start()
{
HealthText.text = SaveScript.PlayerHealth + "%";
}
void Update()
{
if ((healthIntervalAccumulator += Time.deltaTime) >= HealthInterval)
{
healthIntervalAccumulator = 0.0f;
SaveScript.PlayerHealth++;
HealthText.text = SaveScript.PlayerHealth + "%";
}
}
}