Unity3D - инициализация сервисов в начале игры - PullRequest
0 голосов
/ 29 марта 2020

Каков рекомендуемый способ инициализации сервисов / кода в начале игры до инициализации нижестоящих игровых объектов? Например, у меня есть код ниже, который пытается инициализировать игры Google Play. Я хочу убедиться, что Init() завершено, прежде чем отдельный игровой объект попытается обновить метку с именем пользователя, вошедшего в систему, через Social.localUser.userName (я предпочитаю хранить логи отображения c отдельно от кода GameManager).

Спасибо

public class GameManager : MonoBehaviour 

    private void Start ()
    {
        PlayServicesClient.Init(() =>
        {
            // More Game Logic
        });
    }
}

// Separate script used in the menu UI
login.text = (Social.localUser.authenticated) ? Social.localUser.userName : "Login";

Редактировать: Я попытался переместить инициализацию Play Games на Awake(), как предложено Eri c, но код для входа в систему не показывает ' t ждать, пока метод Init не завершится sh, даже если код входа находится в Start() другого сценария.

   private void Awake()
    {
        PlayGamesClient.Init((success) => { });
    }

    // Start method of the other script
    private void Start()
    {
        loginText.text = (Social.localUser.authenticated) ? Social.localUser.userName : "Login";
    }
...