// Update is called once per frame void Update() { for (int controllerNumber = 1; controllerNumber <= 4; controllerNumber++) { if (Input.GetButtonDown("Action" + controllerNumber)) { Debug.Log("Heard controller" + controllerNumber); bool controllerAlreadyAssigned = false; for (int playerNumber = 1; playerNumber <= 4; playerNumber++) { if (StaticPlayerControllerMapping.GetControllerNumberForPlayer(playerNumber) == controllerNumber) { controllerAlreadyAssigned = true; StaticPlayerControllerMapping.SetControllerNumberForPlayer(playerNumber, 0); Debug.Log("Reset player" + playerNumber); } } if (!controllerAlreadyAssigned) { for (int playerNumber = 1; playerNumber <= 4; playerNumber++) { if (StaticPlayerControllerMapping.GetControllerNumberForPlayer(playerNumber) == 0) { StaticPlayerControllerMapping.SetControllerNumberForPlayer(playerNumber, controllerNumber); Debug.Log("Assigning controller" + controllerNumber + "to player" + playerNumber); break; } } } } } }
private void Start() { rb = GetComponent <Rigidbody>(); if (controllerNumber == 0 && playerNumber > 0 && playerNumber <= 4) { controllerNumber = StaticPlayerControllerMapping.GetControllerNumberForPlayer(playerNumber); } if (controllerNumber == 0) // Still controller not set? then disable the game object as no player possess it { gameObject.SetActive(false); // hides the player if no player has possessed this player. } else { horizontalInputString = "Horizontal" + controllerNumber; verticalInputString = "Vertical" + controllerNumber; actionInputString = "Action" + controllerNumber; pickupInputString = "Pickup" + controllerNumber; } carryObject = GetComponentInChildren <CarryObject>(); if (carryObject == null) { Debug.LogError("No CarryObject script in childer for " + gameObject); } }
// Update is called once per frame void Update() { if (playerNumber > 0 && playerNumber <= 4 && StaticPlayerControllerMapping.GetControllerNumberForPlayer(playerNumber) != 0) { actionText.text = selectedText1 + StaticPlayerControllerMapping.GetControllerNumberForPlayer(playerNumber) + selectedText2 + playerNumber; } else { actionText.text = notSelectedText; } }
// Update is called once per frame void Update() { for (int playerNumber = 1; playerNumber <= 4; playerNumber++) { if (StaticPlayerControllerMapping.GetControllerNumberForPlayer(playerNumber) != 0) { button.interactable = true; return; } } button.interactable = false; }