2016-05-29 26 views
0

Game Centerから返された認証ハンドラが起動すると、ローカルプレーヤーはdisplayName = "Me"で表示され、エイリアスはプレーヤーのユーザー名です。しかし、私は代わりにユーザーのフルネームを表示したいので、実際のdisplayNameではなく「Me」で表示します。Game Centerから現在のユーザー名を取得する方法

「私」ではなく完全な名前を指定する方法はありますか?

答えて

0

特に、ランダムプレーヤーと一致する場合はエイリアスを表示することをお勧めしますが、エイリアスとdisplayNameの両方で、プレーヤーの認証が完了して適切な値が返される必要があります。

認証プロセスを開始するには、ローカルプレーヤーの認証ハンドラを設定する必要があります。設定するだけでプロセスが開始され、メソッドが数秒で呼び出されます。その後、ローカルプレーヤーのエイリアスとdisplayNameは正しいものにする必要があります。例えば

class YourGameCenterManager:GKGameCenterControllerDelegate, 
        GKLocalPlayerListener 
{ 
    var localGCAccount: GKLocalPlayer! 
    var active    = false 

    init() 
    { 
    localGCAccount  = GKLocalPlayer.localPlayer() 
    localGCAccount?.authenticateHandler = gameCenterAuthentication 
    } 

    func gameCenterAuthentication(gameCenterVC :UIViewController?, err:NSError?) 
    {  
     if gameCenterVC != nil 
     {  
     // Game center wants to display a sign-on view ... 
     // note: I personally never got this to actually happen 
     } 
     else if localGCAccount?.authenticated ?? false 
     { 
     if not(active) 
     { 
      active = true 
      localGCAccount?.unregisterAllListeners() 
      localGCAccount?.registerListener(self) 

      // ... whatever else you need to do when Game Center is ready 
      // at this point localGCAccount's alias and displayName should be ok 
     } 
     } 
     else if active 
     { 
     //... Game Center just went bad ... do what you have to to to handle it  
     active = false  
     }   
    } 
関連する問題