【发布时间】:2023-04-03 09:58:01
【问题描述】:
我有一个玩家和一个敌人。当我右键单击敌人时,他的HP下降并且命中计数器上升。我想让它就像当你击中敌人时文本标签变得可见,当你停止攻击时它保持可见几秒钟,然后隐藏并将命中计数器设置回 0。
这就是我目前所拥有的。
public Text GUIHit;
public int HitCounter = 0;
void OnMouseOver()
{
if (Input.GetMouseButtonDown(1))
{
HitCounter++;
StartCoroutine(ShowHitCounter(HitCounter.ToString(), 2));
}
}
IEnumerator ShowHitCounter(string message, float delay)
{
GUIHit.text = message;
GUIHit.enabled = true;
yield return new WaitForSeconds(delay);
HitCounter = 0;
GUIHit.enabled = false;
}
发生的情况是它工作了 2 秒,但即使我仍在攻击它也会变得不可见并且命中计数器回到 0,协程也不会重置回起点。
【问题讨论】:
-
对此类计时器使用 Invoke
标签: c# user-interface unity3d