Почему я не могу обновить значение Unity Text в моей функции? - PullRequest
0 голосов
/ 02 марта 2020

Я пытаюсь отобразить сообщения об ошибках в зависимости от типа ошибки. Для этого у меня есть переменная publi c errorMessage, которая прикреплена к тексту пользовательского интерфейса в инспекторе. Я могу изменить текстовое значение в функции запуска, но не могу изменить это значение в функции GetErrorMessage. Ниже приведен код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using Firebase.Auth;
using System;


public class LoginController : MonoBehaviour
{
    public InputField email, password; 
    public Screen nextScreen;
    public Text errorMessage;

    void Start()
    {
        password.inputType = InputField.InputType.Password;
        errorMessage.text = "This is error"; //this works
    }


    public void Login()
    {
        //login code which calls GetErrorMessage(error)
    }
    void GetErrorMessage(string error)
    {
        print("error function called");
        print(error);
        print(errorMessage.text); //works till here
        errorMessage.text = error; //doesn't work from here. Seems like it stops functioning.
        print(error); //and this never gets printed
    }
}

Инспектор: Сообщение об ошибке прикреплено к моему тексту пользовательского интерфейса

1 Ответ

1 голос
/ 02 марта 2020

Ваша функция выполняется до конца, если только вы не получите исключение NullReferenceException (единственное возможное исключение, которое вы можете получить с помощью этого метода).

Я считаю, что на вашей панели консоли происходит следующее: у вас выбрана опция «Свернуть», поэтому вместо этого сообщение складывается.

enter image description here

Если вы хотите убедиться, что оно работает, в вашей последней строке GetErrorMessage () вместо этого выдает «Ошибка при выходе из функции».

...