void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            currentPlayerIndex++;
            if (currentPlayerIndex >= players.Length)
            {
                currentPlayerIndex = 0;
            }

            SelectPlayer(players[currentPlayerIndex]);
        }

        if (Input.GetMouseButtonDown(2) || Input.GetKeyDown(KeyCode.T))
        {
            pickupController.ThrowObject();
            SetTarget(selectedPlayer.transform.position);
        }
        else if (Input.GetMouseButtonDown(1) || Input.GetKeyDown(KeyCode.D))
        {
            pickupController.DropObject();
            SetTarget(selectedPlayer.transform.position);
        }

        if (!Input.GetMouseButtonDown(0))
        {
            return;
        }

        if (!Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out var hit, 1000))
        {
            return;
        }

        var gameObject = hit.collider.gameObject;

        if (gameObject.CompareTag("Player"))
        {
            SelectPlayer(gameObject);
        }
        else
        {
            SetTarget(hit.point);
        }

        if (gameObject.CompareTag("Pickable"))
        {
            pickupController.PickObject(gameObject);
        }
    }