В XNA есть SignedInGamer
класс с SignedInGamer.PlayerIndex
членом, который должен сказать вам, что если вы можете получить SignedInGamer
объект.
Для этого есть Gamer.SignedInGamers
статическое свойство, которое содержит коллекцию SignedInGamer
объектов на основе текущего состояния системы. Это из Microsoft.Xna.Framework.GamerServices
пространства имен.
С этой информацией вы можете сделать что-то вроде следующего:
//If player 2 is connected
if (GamePad.GetState(PlayerIndex.Two).IsConnected)
{
//If we can't find a signed in gamer with a PlayerIndex of two
if (!Gamer.SignedInGamers.Cast<SignedInGamer>().Any(x => x.PlayerIndex == PlayerIndex.Two))
{
//Your handling code here
}
}