// 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; } } }
// 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()); } }