0
Game Centerから返された認証ハンドラが起動すると、ローカルプレーヤーはdisplayName = "Me"で表示され、エイリアスはプレーヤーのユーザー名です。しかし、私は代わりにユーザーのフルネームを表示したいので、実際のdisplayNameではなく「Me」で表示します。Game Centerから現在のユーザー名を取得する方法
「私」ではなく完全な名前を指定する方法はありますか?
Game Centerから返された認証ハンドラが起動すると、ローカルプレーヤーはdisplayName = "Me"で表示され、エイリアスはプレーヤーのユーザー名です。しかし、私は代わりにユーザーのフルネームを表示したいので、実際のdisplayNameではなく「Me」で表示します。Game Centerから現在のユーザー名を取得する方法
「私」ではなく完全な名前を指定する方法はありますか?
特に、ランダムプレーヤーと一致する場合はエイリアスを表示することをお勧めしますが、エイリアスと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
}
}