Не отображается изменение текста на экране

Ошибки и баги Unity3D

Не отображается изменение текста на экране

Сообщение sam1286 14 ноя 2019, 11:35

Синтаксис:
Используется csharp
public class BonusTimer
{
    private Text timerTxt;
    private Timer timer;
    private decimal time;

    public void StartTimer(decimal time)
    {
        timerTxt = GameObject.FindGameObjectWithTag("Timer").GetComponent<Text>();
        this.time = time;
        SetTimer();
    }
    private void SetTimer()
    {
        timer = new Timer(100);
        timer.Elapsed += TimerUIUpdate;
        timer.AutoReset = true;
        timer.Enabled = true;
    }

    public void TimerUIUpdate(object obj, ElapsedEventArgs arg)
    {
        timerTxt.text = time.ToString();
        time -= 0.1m;
        if (time < 0) { timer.Stop(); }
    }

}
 


При запуске кода изменяется только значения поля text, объекта Text. А на экране значение не меняется. В чем проблема? Если менять текст не по событию таймера то все работает, а по событию не отображаются изменения.
sam1286
UNец
 
Сообщения: 4
Зарегистрирован: 22 мар 2018, 19:29

Re: Не отображается изменение текста на экране

Сообщение 1max1 14 ноя 2019, 11:58

У тебя видимо несколько объектов с тегом "Timer" и находит не тот что ты ожидаешь.
В дебаге глянь:
Синтаксис:
Используется csharp
Debug.Log(GameObject.FindGameObjectsWithTag("Timer").Length);
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Не отображается изменение текста на экране

Сообщение sam1286 17 ноя 2019, 11:13

Объект тот. Если обновлять текст не по событию таймера, то все обновляется. И опять же не обновляется на экране, а само значение поля текст меняется, если смотреть в инспекторе.
sam1286
UNец
 
Сообщения: 4
Зарегистрирован: 22 мар 2018, 19:29


Вернуться в Глюки

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2