private void AddLoginProvider(PlayerIdentityLoginSubsystem loginProvider) { if (!loginProvider.running) { loginProvider.Start(); } if (loginProvider.SubsystemDescriptor.defaultInPlatform != PlayerIdentityLoginSubsystemDescriptor.NoDefaultInPlatform && loginProvider.SubsystemDescriptor.defaultInPlatform == Application.platform) { // add it as the first (default) provider. m_LoginProviders.Insert(0, loginProvider); } else { m_LoginProviders.Add(loginProvider); } }
void Start() { if (PlayerIdentityGeneralSettings.Instance == null) { Utils.Logger.Warning("No Loader was configured for use."); return; } var backendLoader = PlayerIdentityGeneralSettings.Instance.Manager.backendLoader; if (backendLoader == null) { Utils.Logger.Error("Identity backend is not configured."); return; } var backendSystem = backendLoader.GetLoadedSubsystem <PlayerIdentityBackendSubsystem>(); if (backendSystem != null) { Utils.Logger.InfoFormat("BackendSystem is {1} for Provider: {0}", backendLoader.name, backendSystem.running ? "running" : "not running"); if (!backendSystem.running) { backendSystem.Start(); } m_Backend = backendSystem; } List <PlayerIdentityLoader> loaders = PlayerIdentityGeneralSettings.Instance.Manager.providerLoaders; foreach (var loader in loaders) { if (loader == null) { continue; } PlayerIdentityLoginSubsystem loginSystem = loader.GetLoadedSubsystem <PlayerIdentityLoginSubsystem>(); if (loginSystem != null) { Utils.Logger.InfoFormat("LoginSystem is {1} for Provider: {0}", loader.name, loginSystem.running ? "running" : "not running"); var supportedPlatforms = loginSystem.SubsystemDescriptor.supportedPlatforms; if (supportedPlatforms.Length > 0) { if (supportedPlatforms.Any(p => p == Application.platform)) { // supported platform AddLoginProvider(loginSystem); } else { Utils.Logger.InfoFormat("LoginSystem is not supported in platform {1} for Provider: {0}", loader.name, Application.platform); } } else { AddLoginProvider(loginSystem); } } } RestoreLogin(); }