private void InitializeGameServices() { lock (this.GameServicesLock) { if (this.mServices != null) { return; } using (GameServicesBuilder gameServicesBuilder = GameServicesBuilder.Create()) { using (PlatformConfiguration platformConfiguration = this.clientImpl.CreatePlatformConfiguration()) { this.RegisterInvitationDelegate(this.mConfiguration.InvitationDelegate); gameServicesBuilder.SetOnAuthFinishedCallback(new GameServicesBuilder.AuthFinishedCallback(this.HandleAuthTransition)); gameServicesBuilder.SetOnTurnBasedMatchEventCallback((Action <Types.MultiplayerEvent, string, NativeTurnBasedMatch>)((eventType, matchId, match) => this.mTurnBasedClient.HandleMatchEvent(eventType, matchId, match))); gameServicesBuilder.SetOnMultiplayerInvitationEventCallback(new Action <Types.MultiplayerEvent, string, GooglePlayGames.Native.PInvoke.MultiplayerInvitation>(this.HandleInvitation)); if (this.mConfiguration.EnableSavedGames) { gameServicesBuilder.EnableSnapshots(); } Debug.Log((object)"Building GPG services, implicitly attempts silent auth"); this.mAuthState = NativeClient.AuthState.SilentPending; this.mServices = gameServicesBuilder.Build(platformConfiguration); this.mEventsClient = (IEventsClient) new NativeEventClient(new GooglePlayGames.Native.PInvoke.EventManager(this.mServices)); this.mQuestsClient = (IQuestsClient) new NativeQuestClient(new GooglePlayGames.Native.PInvoke.QuestManager(this.mServices)); this.mTurnBasedClient = new NativeTurnBasedMultiplayerClient(this, new TurnBasedManager(this.mServices)); this.mTurnBasedClient.RegisterMatchDelegate(this.mConfiguration.MatchDelegate); this.mRealTimeClient = new NativeRealtimeMultiplayerClient(this, new RealtimeManager(this.mServices)); this.mSavedGameClient = !this.mConfiguration.EnableSavedGames ? (ISavedGameClient) new UnsupportedSavedGamesClient("You must enable saved games before it can be used. See PlayGamesClientConfiguration.Builder.EnableSavedGames.") : (ISavedGameClient) new NativeSavedGameClient(new GooglePlayGames.Native.PInvoke.SnapshotManager(this.mServices)); this.mAuthState = NativeClient.AuthState.SilentPending; this.mTokenClient = this.clientImpl.CreateTokenClient(); } } } }
private void InitializeGameServices() { lock (GameServicesLock) { if (mServices == null) { using (GameServicesBuilder gameServicesBuilder = GameServicesBuilder.Create()) { using (PlatformConfiguration configRef = clientImpl.CreatePlatformConfiguration(mConfiguration)) { RegisterInvitationDelegate(mConfiguration.InvitationDelegate); gameServicesBuilder.SetOnAuthFinishedCallback(HandleAuthTransition); gameServicesBuilder.SetOnTurnBasedMatchEventCallback(delegate(Types.MultiplayerEvent eventType, string matchId, NativeTurnBasedMatch match) { mTurnBasedClient.HandleMatchEvent(eventType, matchId, match); }); gameServicesBuilder.SetOnMultiplayerInvitationEventCallback(HandleInvitation); if (mConfiguration.EnableSavedGames) { gameServicesBuilder.EnableSnapshots(); } string[] scopes = mConfiguration.Scopes; for (int i = 0; i < scopes.Length; i++) { gameServicesBuilder.AddOauthScope(scopes[i]); } if (mConfiguration.IsHidingPopups) { gameServicesBuilder.SetShowConnectingPopup(false); } Debug.Log((object)"Building GPG services, implicitly attempts silent auth"); mAuthState = AuthState.SilentPending; mServices = gameServicesBuilder.Build(configRef); mEventsClient = new NativeEventClient(new GooglePlayGames.Native.PInvoke.EventManager(mServices)); mQuestsClient = new NativeQuestClient(new GooglePlayGames.Native.PInvoke.QuestManager(mServices)); mVideoClient = new NativeVideoClient(new GooglePlayGames.Native.PInvoke.VideoManager(mServices)); mTurnBasedClient = new NativeTurnBasedMultiplayerClient(this, new TurnBasedManager(mServices)); mTurnBasedClient.RegisterMatchDelegate(mConfiguration.MatchDelegate); mRealTimeClient = new NativeRealtimeMultiplayerClient(this, new RealtimeManager(mServices)); if (mConfiguration.EnableSavedGames) { mSavedGameClient = new NativeSavedGameClient(new GooglePlayGames.Native.PInvoke.SnapshotManager(mServices)); } else { mSavedGameClient = new UnsupportedSavedGamesClient("You must enable saved games before it can be used. See PlayGamesClientConfiguration.Builder.EnableSavedGames."); } mAuthState = AuthState.SilentPending; mTokenClient = clientImpl.CreateTokenClient(true); if (!GameInfo.WebClientIdInitialized() && (mConfiguration.IsRequestingIdToken || mConfiguration.IsRequestingAuthCode)) { Logger.e("Server Auth Code and ID Token require web clientId to configured."); } mTokenClient.SetWebClientId("683498632423-6p90updcgm6b67r4ucmhs82nkq1dc1mi.apps.googleusercontent.com"); mTokenClient.SetRequestAuthCode(mConfiguration.IsRequestingAuthCode, mConfiguration.IsForcingRefresh); mTokenClient.SetRequestEmail(mConfiguration.IsRequestingEmail); mTokenClient.SetRequestIdToken(mConfiguration.IsRequestingIdToken); mTokenClient.SetHidePopups(mConfiguration.IsHidingPopups); mTokenClient.AddOauthScopes(scopes); mTokenClient.SetAccountName(mConfiguration.AccountName); } } } } }