Как изменить игровые объекты в Continue с Firebase auth UNITY3D - PullRequest
0 голосов
/ 16 апреля 2019

Почему мой код не работает?Я хочу изменить состояние пользовательского интерфейса после авторизации OK или аутентификации Failed.

Services.Api.Auth.SignInWithEmailAndPasswordAsync(_emailField.text, _passwordField.text).ContinueWith(auth =>
    {
        if (auth.IsFaulted || auth.IsCanceled)
        {
            Services.Loading.Hide();
            Services.StateManager.ShowPopUp(Localisation.GetString("warningTitleText"), auth.Exception.Message.ToString());
            Debug.LogFormat("<color=red><b>[WEB]</b></color>" + " AUTHORIZATION FAULTED");
            return;
        }

        Services.Api.User = auth.Result;

        Services.Photon.Connect();
        Services.StateManager.Switch(nextState);

        Debug.LogFormat("<color=red><b>[WEB]</b></color>" + " AUTHORIZATION OK: {0}   ({1})",
            Services.Api.User.DisplayName, Services.Api.User.UserId);
    });

Debug.LogFormat работает, но другой код не работает:

            Services.Loading.Hide();
            Services.StateManager.ShowPopUp(Localisation.GetString("warningTitleText"), auth.Exception.Message.ToString());

или

        Services.Photon.Connect();
        Services.StateManager.Switch(nextState);

1 Ответ

0 голосов
/ 16 апреля 2019

Исходя из небольшого кода, который вы предоставили, я могу предположить, что вы пытаетесь изменить свое «состояние пользовательского интерфейса» из некоторой случайной нити, созданной «Services.Api.Auth.SignInWithEmailAndPasswordAsync». Я не слишком знаком с многопоточностью в Unity, но обычно пользовательский интерфейс может быть изменен только тем потоком, которому он принадлежит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...