如何延迟在 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 + "%";
        }
    }
}