/// <summary> /// Reloads the players. /// </summary> /// <param name="callback">Callback.</param> internal void ReloadPlayers(Action callback) { Player.LoadPlayersByIDs(gkMatch.playerIDs.Cast <string>().ToArray(), delegate(Player[] Players) { _players = Players; callback(); callback = null; }); }
/// <summary> /// Initializes the wrapper. /// </summary> /// <param name="nsObj">The NSObject.</param> /// <param name="id">Identifier.</param> protected override void _InitWrapper(NSObject nsObj, string id = null) { base._InitWrapper(nsObj, id); // raise event when player state changes gkVoiceChat.playerStateUpdateHandler = delegate(string playerID, GKVoiceChatPlayerState state) { Player.LoadPlayersByIDs(new string[] { playerID }, delegate(Player[] players) { if (_nsObject != null) { if (_playerStateChangedHandlers != null) { _playerStateChangedHandlers(this, new VoiceChatPlayerStateChangedEventArgs(this, (players.Length > 0) ? players[0] : null, state)); } } }); }; nsObj = null; }
/// <summary> /// Reloads the players. /// </summary> /// <param name="callback">Callback.</param> public void ReloadPlayers(Action callback) { if (_participants == null) { callback(); callback = null; } else { var playerIDs = _participants.Select(x => x.playerID).ToArray(); // Debug.Log("ReloadPlayers IDs: " + Json.Serialize(playerIDs)); Player.LoadPlayersByIDs(playerIDs, delegate(Player[] players) { for (int i = 0; i < _participants.Length; i++) { _participants[i]._player = players[i]; } callback(); callback = null; }); } }
internal static void _MatchInviteHandler(GKInvite acceptedInvite, object[] playersToInvite) { if (acceptedInvite != null) { // show new view controller var mmvc = new GKMatchmakerViewController(acceptedInvite); mmvc.matchmakerDelegate = MatchmakerViewControllerDelegate.instance; UIApplication.deviceRootViewController.PresentViewController(mmvc, true, null); // load players and dispatch event Player.LoadPlayersByIDs(new string[] { acceptedInvite.inviter }, delegate(Player[] players) { if (players.Length > 0) { if (_inviteAcceptedHandlers != null) { _inviteAcceptedHandlers(null, new InviteAcceptedEventArgs(players[0], acceptedInvite.playerGroup, acceptedInvite.playerAttributes)); } } acceptedInvite = null; }); mmvc = null; } else if (playersToInvite != null) { // load players and dispatch event Player.LoadPlayersByIDs(playersToInvite.Cast <string>().ToArray(), delegate(Player[] players) { if (players.Length > 0) { if (_playersInvitedHandlers != null) { _playersInvitedHandlers(null, new PlayersInvitedEventArgs(players)); } } }); } }