public void ShowUI(string leaderboardId, UM_LeaderboardTimeSpan timeSpan, Action <SA_Result> callback) { ISN_GKGameCenterViewController viewController = new ISN_GKGameCenterViewController(); viewController.ViewState = ISN_GKGameCenterViewControllerState.Leaderboards; viewController.LeaderboardIdentifier = leaderboardId; ISN_GKLeaderboardTimeScope scope = ISN_GKLeaderboardTimeScope.AllTime; switch (timeSpan) { case UM_LeaderboardTimeSpan.AllTime: scope = ISN_GKLeaderboardTimeScope.AllTime; break; case UM_LeaderboardTimeSpan.Daily: scope = ISN_GKLeaderboardTimeScope.Today; break; case UM_LeaderboardTimeSpan.Weekly: scope = ISN_GKLeaderboardTimeScope.Week; break; } viewController.LeaderboardTimeScope = scope; viewController.Show(() => { callback.Invoke(new SA_Result()); }); }
/// <summary> /// Shows the default Game Center leaderboard UI /// </summary> /// <param name="leaderboardId"></param> /// <param name="timeScope"></param> public void ShowDefaultLeaderboardUI([CanBeNull] string leaderboardId = null, ISN_GKLeaderboardTimeScope timeScope = ISN_GKLeaderboardTimeScope.Today) { if (GCenterLoginHelper.Instance.IsSignedIn() && _isInitialized) { _viewController.ViewState = ISN_GKGameCenterViewControllerState.Leaderboards; if (_viewController != null) { if (string.IsNullOrEmpty(leaderboardId)) { _viewController.Show(); } else { _viewController.LeaderboardIdentifier = leaderboardId; _viewController.LeaderboardTimeScope = timeScope; _viewController.Show(); } } } else { Debug.Log("Not signed into Game Center."); } }
public void LoadCurrentPlayerScore(string leaderboardId, UM_LeaderboardTimeSpan span, UM_LeaderboardCollection collection, Action <UM_ScoreLoadResult> callback) { var leaderboardRequest = new ISN_GKLeaderboard(); leaderboardRequest.Identifier = leaderboardId; ISN_GKLeaderboardPlayerScope isn_collection = ISN_GKLeaderboardPlayerScope.Global; switch (collection) { case UM_LeaderboardCollection.Public: isn_collection = ISN_GKLeaderboardPlayerScope.Global; break; case UM_LeaderboardCollection.Social: isn_collection = ISN_GKLeaderboardPlayerScope.FriendsOnly; break; } ISN_GKLeaderboardTimeScope isn_timeSpan = ISN_GKLeaderboardTimeScope.AllTime; switch (span) { case UM_LeaderboardTimeSpan.AllTime: isn_timeSpan = ISN_GKLeaderboardTimeScope.AllTime; break; case UM_LeaderboardTimeSpan.Weekly: isn_timeSpan = ISN_GKLeaderboardTimeScope.Week; break; case UM_LeaderboardTimeSpan.Daily: isn_timeSpan = ISN_GKLeaderboardTimeScope.Today; break; } leaderboardRequest.PlayerScope = isn_collection; leaderboardRequest.TimeScope = isn_timeSpan; leaderboardRequest.Range = new ISN_NSRange(1, 1); leaderboardRequest.LoadScores((result) => { UM_ScoreLoadResult um_result; if (result.IsSucceeded) { UM_Score score = new UM_Score(leaderboardRequest.LocalPlayerScore.Value, leaderboardRequest.LocalPlayerScore.Rank, (int)leaderboardRequest.LocalPlayerScore.Context, leaderboardRequest.LocalPlayerScore.DateUnix); um_result = new UM_ScoreLoadResult(score); } else { um_result = new UM_ScoreLoadResult(result.Error); } callback.Invoke(um_result); }); }