Beispiel #1
0
    // Update is called once per frame
    void Update()
    {
        MapPlayerToController game = GameObject.Find("GameManager").GetComponent <MapPlayerToController>();

        if (game.numPlayers == 1)
        {
            numPickupers = oldPickupers;
            if (numPickupers > 2)
            {
                numPickupers = 2;
            }
        }
        else if (game.numPlayers == 2)
        {
            numPickupers = oldPickupers;
            if (numPickupers > 4)
            {
                numPickupers = 4;
            }
        }
        else if (game.numPlayers == 3)
        {
            numPickupers = oldPickupers;
            if (numPickupers > 6)
            {
                numPickupers = 6;
            }
        }
        else if (game.numPlayers == 4)
        {
            numPickupers = oldPickupers;
            if (numPickupers > 8)
            {
                numPickupers = 8;
            }
        }
        if (transform.parent == null)
        {
            Root.transform.position      = Vector3.zero;
            Root.transform.localScale    = Vector3.one;
            Root.transform.localRotation = Quaternion.identity;
            Root.name = gameObject.name;
            transform.SetParent(Root.transform);
        }
        if (AttachedPickupers.transform.parent == null)
        {
            AttachedPickupers.transform.SetParent(Root.transform);
            AttachedPickupers.transform.position      = Vector3.zero;
            AttachedPickupers.transform.localScale    = Vector3.one;
            AttachedPickupers.transform.localRotation = Quaternion.identity;
        }
        List <Transform> pickupers = new List <Transform>();

        for (int i = 0; i < AttachedPickupers.transform.childCount; i++)
        {
            if (AttachedPickupers.transform.GetChild(i)
                .GetComponent <Pickuper>().CanPickup
                .Contains(transform.GetComponent <Collider>()))
            {
                pickupers.Add(AttachedPickupers.transform.GetChild(i));
            }
            else
            {
                AttachedPickupers.transform.GetChild(i)
                .GetComponent <Pickuper>().Drop();
            }
        }
        if (pickupers.Count >= numPickupers)
        {
            cakeslice.Outline outline = transform.gameObject.GetComponent <cakeslice.Outline>();
            if (!outline)
            {
                outline = transform.gameObject.GetComponentInChildren <cakeslice.Outline>();
            }
            outline.color = 1;
            Vector3 movement = Vector3.zero;
            float   speed    = 0f;
            foreach (Transform pickuper in pickupers)
            {
                movement += pickuper.GetComponent <Pickuper>().Motion;
                speed    += pickuper.GetComponent <Pickuper>().speed;
            }
            speed /= pickupers.Count;
            Root.transform.Translate(movement * speed * Time.deltaTime, Space.World);
        }
        else
        {
            cakeslice.Outline outline = transform.gameObject.GetComponent <cakeslice.Outline>();
            if (!outline)
            {
                outline = transform.gameObject.GetComponentInChildren <cakeslice.Outline>();
            }
            if (outline)
            {
                outline.color = 0;
            }
        }
    }
Beispiel #2
0
    // Update is called once per frame
    void Update()
    {
        GameObject            eventSystem = GameObject.Find("EventSystem");
        MapPlayerToController manager     = GameObject.Find("GameManager").GetComponent <MapPlayerToController>();
        MapPlayerToController controllers = gameObject.GetComponent <MapPlayerToController>();
        PlayerControls        controls;

        if ((Input.GetButtonDown("J1Menu") && controllers.controllers.Contains(1)) ||
            (Input.GetButtonDown("J2Menu") && controllers.controllers.Contains(2)) ||
            (Input.GetButtonDown("J3Menu") && controllers.controllers.Contains(3)) ||
            (Input.GetButtonDown("J4Menu") && controllers.controllers.Contains(4)) ||
            (Input.GetButtonDown("J5Menu") && controllers.controllers.Contains(5)))
        {
            if (Input.GetButtonDown("J1Menu"))
            {
                controls = GameObject.Find("Player" + (manager.controllers.IndexOf(1) + 1)).GetComponent <PlayerControls>();
                StandaloneInputModule input = eventSystem.GetComponent <StandaloneInputModule>();
                input.horizontalAxis = controls.leftHorizontalAxis;
                input.verticalAxis   = controls.leftVerticalAxis;
                input.submitButton   = controls.aButton;
                input.cancelButton   = controls.bButton;
            }
            else if (Input.GetButtonDown("J2Menu"))
            {
                controls = GameObject.Find("Player" + (manager.controllers.IndexOf(2) + 1)).GetComponent <PlayerControls>();
                StandaloneInputModule input = eventSystem.GetComponent <StandaloneInputModule>();
                input.horizontalAxis = controls.leftHorizontalAxis;
                input.verticalAxis   = controls.leftVerticalAxis;
                input.submitButton   = controls.aButton;
                input.cancelButton   = controls.bButton;
            }
            else if (Input.GetButtonDown("J3Menu"))
            {
                controls = GameObject.Find("Player" + (manager.controllers.IndexOf(3) + 1)).GetComponent <PlayerControls>();
                StandaloneInputModule input = eventSystem.GetComponent <StandaloneInputModule>();
                input.horizontalAxis = controls.leftHorizontalAxis;
                input.verticalAxis   = controls.leftVerticalAxis;
                input.submitButton   = controls.aButton;
                input.cancelButton   = controls.bButton;
            }
            else if (Input.GetButtonDown("J4Menu"))
            {
                controls = GameObject.Find("Player" + (manager.controllers.IndexOf(4) + 1)).GetComponent <PlayerControls>();
                StandaloneInputModule input = eventSystem.GetComponent <StandaloneInputModule>();
                input.horizontalAxis = controls.leftHorizontalAxis;
                input.verticalAxis   = controls.leftVerticalAxis;
                input.submitButton   = controls.aButton;
                input.cancelButton   = controls.bButton;
            }
            else if (Input.GetButtonDown("J5Menu"))
            {
                controls = GameObject.Find("Player" + (manager.controllers.IndexOf(5) + 1)).GetComponent <PlayerControls>();
                StandaloneInputModule input = eventSystem.GetComponent <StandaloneInputModule>();
                input.horizontalAxis = controls.leftHorizontalAxis;
                input.verticalAxis   = controls.leftVerticalAxis;
                input.submitButton   = controls.aButton;
                input.cancelButton   = controls.bButton;
            }
            pauseControl();
        }

        var numPlayers = 0;
        var player1    = GameObject.Find("Player1");
        var player2    = GameObject.Find("Player2");

        if (player1)
        {
            numPlayers++;
        }
        if (player2)
        {
            numPlayers++;
        }
        if (numPlayers != gameJoinsDisabled)
        {
            playerJoin(numPlayers);
        }


        GameObject menuSpawnHint;

        for (int i = 1; i <= numPlayers; i++)
        {
            if (manager.controllers.IndexOf(i) >= 0)
            {
                controls = GameObject.Find("Player" + (manager.controllers.IndexOf(i) + 1)).GetComponent <PlayerControls>();
                if (controls.LeftAnt != null || controls.RightAnt != null)
                {
                    switch (controls.PlayerNum)
                    {
                    case 1:
                        menuSpawnHintTopLeft.SetActive(false);
                        break;

                    case 2:
                        menuSpawnHintTopRight.SetActive(false);
                        break;

                    case 3:
                        menuSpawnHintLeft.SetActive(false);
                        break;

                    case 4:
                        menuSpawnHintRight.SetActive(false);
                        break;
                    }
                }
                else
                {
                    switch (controls.PlayerNum)
                    {
                    case 1:
                        menuSpawnHintTopLeft.SetActive(true);
                        break;

                    case 2:
                        menuSpawnHintTopRight.SetActive(true);
                        break;

                    case 3:
                        menuSpawnHintLeft.SetActive(true);
                        break;

                    case 4:
                        menuSpawnHintRight.SetActive(true);
                        break;
                    }
                }
            }
        }

        if (SceneManager.GetActiveScene().name == "Level0" && calledStartMessages == false)
        {
            calledStartMessages = true;
            StartCoroutine(startMessages());
        }
    }