void Start() { // use anonymous delegates for this simple example for gathering data from GameCenter. In production you would want to // add and remove your event listeners in OnEnable/OnDisable! GameCenterManager.categoriesLoadedEvent += delegate(List <GameCenterLeaderboard> leaderboards) { _leaderboards = leaderboards; _hasLeaderboardData = _leaderboards != null && _leaderboards.Count > 0; }; GameCenterManager.achievementMetadataLoadedEvent += delegate(List <GameCenterAchievementMetadata> achievementMetadata) { _achievementMetadata = achievementMetadata; _hasAchievementData = _achievementMetadata != null && _achievementMetadata.Count > 0; }; // after authenticating grab the players profile image GameCenterManager.playerAuthenticatedEvent += () => { GameCenterBinding.loadProfilePhotoForLocalPlayer(); loadFriends(); }; // always authenticate at every launch GameCenterBinding.authenticateLocalPlayer(); }
private void loadFriends() { GameCenterManager.playerDataLoadedEvent += friends => { _friends = friends; _hasFriends = _friends != null && _friends.Count > 0; }; Debug.Log("player is authenticated so we are loading friends"); GameCenterBinding.retrieveFriends(true, true); }
void leaderboardsGUI() { if (GUILayout.Button("Load Leaderboard Data")) { GameCenterBinding.loadLeaderboardTitles(); } if (GUILayout.Button("Show Leaderboards")) { GameCenterBinding.showLeaderboardWithTimeScope(GameCenterLeaderboardTimeScope.AllTime); } if (!_hasLeaderboardData) { GUILayout.Label("Load leaderboard data to see more options"); return; } if (GUILayout.Button("Post Score")) { var leaderboardId = _leaderboards[Random.Range(0, _leaderboards.Count)].leaderboardId; Debug.Log("about to report a random score for leaderboard: " + leaderboardId); GameCenterBinding.reportScore(Random.Range(1, 99999), leaderboardId); } if (GUILayout.Button("Issue Score Challenge")) { GameCenterBinding.issueScoreChallenge(Random.Range(1, 9999), 0, _leaderboards[0].leaderboardId, null, "Beat this score!"); } if (GUILayout.Button("Get Raw Score Data")) { GameCenterBinding.retrieveScores(false, GameCenterLeaderboardTimeScope.AllTime, 1, 25, _leaderboards[0].leaderboardId); } if (GUILayout.Button("Get Scores for Me")) { foreach (var leaderboard in _leaderboards) { GameCenterBinding.retrieveScoresForPlayerIds(new string[] { GameCenterBinding.playerIdentifier() }, leaderboard.leaderboardId); } } if (GUILayout.Button("Show Leaderboard " + _leaderboards[0].leaderboardId)) { GameCenterBinding.showLeaderboardWithTimeScopeAndLeaderboard(GameCenterLeaderboardTimeScope.Week, _leaderboards[0].leaderboardId); } }
void achievementsGUI() { if (GUILayout.Button("Load Achievement Metadata")) { GameCenterBinding.retrieveAchievementMetadata(); } if (GUILayout.Button("Get Raw Achievements")) { GameCenterBinding.getAchievements(); } if (GUILayout.Button("Show Achievements")) { GameCenterBinding.showAchievements(); } if (GUILayout.Button("Reset Achievements")) { GameCenterBinding.resetAchievements(); } if (!_hasAchievementData) { GUILayout.Label("Load achievement metadata to see more options"); return; } if (GUILayout.Button("Post Achievement")) { int percentComplete = (int)Random.Range(2, 60); Debug.Log("sending percentComplete: " + percentComplete); GameCenterBinding.reportAchievement(_achievementMetadata[0].identifier, percentComplete); } if (GUILayout.Button("Issue Achievement Challenge")) { GameCenterBinding.issueAchievementChallenge(_achievementMetadata[0].identifier, null, "I challenge you"); } }
void columnOneGeneral() { if (GUILayout.Button("Get Player Alias")) { var alias = GameCenterBinding.playerAlias(); Debug.Log("Player alias: " + alias); } if (_hasFriends) { // see if we have any friends with a profile image on disk var friendWithProfileImage = _friends.Where(f => f.hasProfilePhoto).FirstOrDefault(); GUI.enabled = friendWithProfileImage != null; if (GUILayout.Button("Show Friends Profile Image")) { var tex = friendWithProfileImage.profilePhoto; // grab our cube and display it with the texture var cube = GameObject.Find("Cube"); cube.GetComponent <Renderer>().enabled = true; cube.GetComponent <Renderer>().material.mainTexture = tex; } GUI.enabled = true; } if (GUILayout.Button("Load Received Challenges")) { GameCenterBinding.loadReceivedChallenges(); } if (GUILayout.Button("Show Leaderboards")) { GameCenterBinding.showGameCenterViewController(GameCenterViewControllerState.Leaderboards); } if (GUILayout.Button("Show Achievements")) { GameCenterBinding.showGameCenterViewController(GameCenterViewControllerState.Achievements); } if (GUILayout.Button("Show Challenges")) { GameCenterBinding.showGameCenterViewController(GameCenterViewControllerState.Challenges); } if (GUILayout.Button("Generate Identity Signature")) { GameCenterBinding.generateIdentityVerificationSignature(); } if (GUILayout.Button("Show Custom Notification Banner")) { GameCenterBinding.showCustomNotificationBanner("This is my custom banner", "It lets me stick whatever I want in a Game Center styled banner", 4f); } }
void OnGUI() { beginColumn(); if (GUILayout.Button("Get Player Alias")) { string alias = GameCenterBinding.playerAlias(); Debug.Log("Player alias: " + alias); } if (_hasFriends) { // see if we have any friends with a profile image on disk var friendWithProfileImage = _friends.Where(f => f.hasProfilePhoto).FirstOrDefault(); GUI.enabled = friendWithProfileImage != null; if (GUILayout.Button("Show Friends Profile Image")) { var tex = friendWithProfileImage.profilePhoto; // grab our cube and display it with the texture var cube = GameObject.Find("Cube"); cube.GetComponent <Renderer>().enabled = true; cube.GetComponent <Renderer>().material.mainTexture = tex; } GUI.enabled = true; } if (GUILayout.Button("Load Received Challenges")) { GameCenterBinding.loadReceivedChallenges(); } if (GUILayout.Button("Show GC Leaderboards (iOS 6+)")) { GameCenterBinding.showGameCenterViewController(GameCenterViewControllerState.Leaderboards); } if (GUILayout.Button("Show GC Achievements (iOS 6+)")) { GameCenterBinding.showGameCenterViewController(GameCenterViewControllerState.Achievements); } if (GUILayout.Button("Generate Identity Signature")) { GameCenterBinding.generateIdentityVerificationSignature(); } endColumn(true); // toggle to show two different sets of buttons if (toggleButtonState("Show Achievement Buttons")) { leaderboardsGUI(); } else { achievementsGUI(); } toggleButton("Show Achievement Buttons", "Show Leaderboard Buttons"); endColumn(); if (bottomLeftButton("Multiplayer Scene (Requires Multiplayer Plugin!)")) { Application.LoadLevel("GameCenterMultiplayerTestScene"); } if (bottomRightButton("Turn Based Multiplayer Scene (Requires TB Plugin!)")) { Application.LoadLevel("GCTurnBasedTestScene"); } }