Exemple #1
0
 private void OnDeviceDetached(InputDevice device)
 {
     for (int i = 0; i < controllerToPlayers.Count; i++)
     {
         if (controllerToPlayers[i].device.Equals(device))
         {
             Debug.Log("Detached Controller : ");
             ControllerToPlayer ctPlayer = controllerToPlayers[i];
             ctPlayer.controllerState = ControllerState.DETACHED;
             ctPlayer.gameState       = GameState.NOT_PLAYING;
             ctPlayer.player.SetActive(false);
             break;
         }
     }
 }
Exemple #2
0
    public override int AddPlayer()
    {
        int playerId = base.AddPlayer() - 1;

        Debug.Log("New Connected controller : " + controllerToPlayers.Count);
        ControllerToPlayer ctPlayer = new ControllerToPlayer();

        ctPlayer.playerId        = playerId;
        ctPlayer.device          = null;
        ctPlayer.controllerState = ControllerState.ATTACHED;
        ctPlayer.gameState       = GameState.PLAYING;

        controllerToPlayers.Add(ctPlayer);

        return(playerId);
    }
Exemple #3
0
    private void OnDeviceAttached(InputDevice newDevice)
    {
        //Check if we've found again the controller
        bool reFoundController = false;

        for (int i = 0; i < controllerToPlayers.Count; i++)
        {
            if (controllerToPlayers[i].device.Equals(newDevice))
            {
                Debug.Log("Reconnected controller : " + controllerToPlayers[i].playerId);
                reFoundController = true;

                ControllerToPlayer ctPlayer = controllerToPlayers[i];
                ctPlayer.controllerState = ControllerState.ATTACHED;
                ctPlayer.gameState       = GameState.PLAYING;
                ctPlayer.player.SetActive(true);

                controllerToPlayers[i] = ctPlayer;
                break;
            }
        }

        //Else, register the new controller
        if (!reFoundController)
        {
            int newPlayerId             = AddPlayer();
            ControllerToPlayer ctPlayer = controllerToPlayers[newPlayerId];
            ctPlayer.device = newDevice;
            controllerToPlayers[newPlayerId] = ctPlayer;

            if (_playerPrefab != null)
            {
                Vector3 spawnPosition = new Vector3(0, 0, 0); //Behind the camera

                GameObject newPlayerObj = Instantiate(_playerPrefab, spawnPosition, Quaternion.identity);
                newPlayerObj.name = "Player " + (ctPlayer.playerId + 1).ToString();
                newPlayerObj.GetComponent <PlayerController>()._playerId = ctPlayer.playerId;
                ctPlayer.player = newPlayerObj;
            }
        }
    }