У меня есть игрок и враг. Когда я обращаюсь к врагу, его HP опускается, и ударная стрелка поднимается. Я хочу сделать это, когда вы нажмете на врага, текстовая метка станет видимой, и когда вы прекратите атаковать, она останется видимой еще на пару секунд, а затем скроется и снова установит hitcounter на 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 для таких таймеров – Fattie