Exemplo n.º 1
0
    public static void CreateInputMappings(ControllerMenuSetup setup)
    {
        List <LocalPlayerInput> inputs = new List <LocalPlayerInput> (8);
        int playerNumber = 0;

        numOfPlayers = 0;
        for (int i = 0; i < setup.ctrls.Count; i++)
        {
            ControllerSelector ctrl = setup.ctrls [i];
            if (!ctrl.ctrlData.active)
            {
                continue;
            }

            if (ctrl.GetNumPlayersOnController() == 1)
            {
                inputs.Add(new LocalPlayerInput(playerNumber, ctrl.ctrlData.number, ControllerType.full));
                numOfPlayers += 1;
            }
            else if (ctrl.GetNumPlayersOnController() == 2)
            {
                inputs.Add(new LocalPlayerInput(playerNumber, ctrl.ctrlData.number, ControllerType.left));
                inputs.Add(new LocalPlayerInput(++playerNumber, ctrl.ctrlData.number, ControllerType.right));
                numOfPlayers += 2;
            }
            else
            {
                Debug.LogError("MORE THAN 2 PEOPLE ON CONTROLLER " + i);
            }
            playerNumber++;
        }
        playerInputMapping = inputs.ToArray();
    }
    public static Vector2 GetMovement(ControllerSelector playerData)
    {
        float x = 0;
        float y = 0;

        switch (playerData)
        {
        case ControllerSelector.KEYBOARD_LEFT:
            if (Input.GetKey(KeyCode.A))
            {
                x = -1;
            }
            else if (Input.GetKey(KeyCode.D))
            {
                x = 1;
            }

            if (Input.GetKey(KeyCode.W))
            {
                y = 1;
            }
            else if (Input.GetKey(KeyCode.S))
            {
                y = -1;
            }
            break;

        case ControllerSelector.KEYBOARD_RIGHT:
            if (Input.GetKey(KeyCode.LeftArrow))
            {
                x = -1;
            }
            else if (Input.GetKey(KeyCode.RightArrow))
            {
                x = 1;
            }

            if (Input.GetKey(KeyCode.UpArrow))
            {
                y = 1;
            }
            else if (Input.GetKey(KeyCode.DownArrow))
            {
                y = -1;
            }
            break;

        case ControllerSelector.JOYSTICK_FIRST:
            x = Input.GetAxisRaw("Horizontal1");
            y = Input.GetAxisRaw("Vertical1");
            break;

        case ControllerSelector.JOYSTICK_SECOND:
            x = Input.GetAxisRaw("Horizontal2");
            y = Input.GetAxisRaw("Vertical2");
            break;
        }
        return(new Vector2(x, y));
    }
Exemplo n.º 3
0
    void UpdateGraphics()
    {
        playerNumDisplayText.text     = PlayerInputs.GetLocalPlayerCount().ToString();
        controllerNumDisplayText.text = PlayerInputs.GetActiveControllers().ToString();

        // keep number of input panels the same as total controllers
        if (totalControllers != PlayerInputs.GetTotalControllers())
        {
            totalControllers = PlayerInputs.GetTotalControllers();
            for (int i = ctrls.Count; i < totalControllers; i++)
            {
                GameObject         newObj   = Instantiate(ctrlPrefab, Vector3.zero, Quaternion.identity);
                ControllerSelector selector = newObj.GetComponent <ControllerSelector> ();
                ctrls.Add(selector);
            }
        }

        // update the appropriate panels based off active controllers
        if (controllerCount != PlayerInputs.GetActiveControllers())
        {
            ControllerData[] controllerData = PlayerInputs.GetControllerData();

            // set controller data to panels
            controllerCount = PlayerInputs.GetActiveControllers();
            for (int i = 0; i < controllerData.Length; i++)
            {
                if (controllerData [i].active)
                {
                    ctrls [i].SetControllerData(controllerData [i]);
                }
                else
                {
                    ctrls [i].gameObject.SetActive(false);
                }
            }

            // reset the cursor
            sharedCursor.FindNewSelectable();

            int     numGaps   = controllerCount - 1;
            Vector2 totalSize = ctrlGuiSize * controllerCount + numGaps * gap;
            Vector2 midPoint  = totalSize / 2;
            Vector2 farLeft   = -midPoint + (ctrlGuiSize / 2);
            farLeft.x  += Display.main.renderingWidth / 2;
            farLeft.y  += Display.main.renderingHeight / 2;
            newCtrlTime = Time.time;
            Vector2 nextPos = farLeft;
            for (int i = 0; i < controllerData.Length; i++)
            {
                if (!controllerData [i].active)
                {
                    continue;
                }
                ctrls [i].SetDesiredPos(nextPos);
                nextPos += gap + ctrlGuiSize;
            }
        }
    }
Exemplo n.º 4
0
    public bool isPrimary()
    {
        ControllerManager manager = ControllerSelector.getInputManager();

        if (manager.getPrimaryController().gameObject == gameObject)
        {
            return(true);
        }
        return(false);
    }
Exemplo n.º 5
0
 void OnTriggerEnter2D(Collider2D coll)
 {
     if (coll.gameObject.tag == "ControllerSelector")
     {
         ControllerSelector selector = coll.gameObject.GetComponent <ControllerSelector>();
         ControlManager.setPlayerDevice(selector.player_num, selector.device);
         ++players_set;
         Destroy(coll.gameObject);
     }
 }
Exemplo n.º 6
0
 // check si la manette qui donne un retour est déjà assignée
 bool slotAvailable(int controllerId)
 {
     Controller360[] controls = ControllerSelector.getInputManager().getControllers();
     for (int i = 0; i < controls.Length; i++)
     {
         if (controls[i] != null)
         {
             if (controls[i].controllerId == controllerId)
             {
                 return(false);
             }
         }
     }
     return(true);
 }
    public static bool GetPush(ControllerSelector playerData)
    {
        switch (playerData)
        {
        case ControllerSelector.KEYBOARD_LEFT:
            return(Input.GetKey(KeyCode.G));

        case ControllerSelector.KEYBOARD_RIGHT:
            return(Input.GetKey(KeyCode.KeypadPlus));

        case ControllerSelector.JOYSTICK_FIRST:
            return(Input.GetKey(KeyCode.Joystick1Button1));

        case ControllerSelector.JOYSTICK_SECOND:
            return(Input.GetKey(KeyCode.Joystick2Button1));

        default: return(false);
        }
    }
Exemplo n.º 8
0
    void Start()
    {
        manager = ControllerSelector.getInputManager();
        if (manager == null)
        {
            Debug.LogError("no input manager ?");
        }

        controls = manager.getControllers();

        style = new GUIStyle();
        style.normal.textColor = Color.red;
        style.fontStyle        = FontStyle.Bold;

#if !UNITY_EDITOR
        visible = false;
#endif

        //KeyManager.subscribeKey(KeyCode.I, "controller_test", onToggle).setupDescription("afficher les infos manette");
    }
Exemplo n.º 9
0
 private void Start()
 {
     selector = Instantiate(selector);
 }
Exemplo n.º 10
0
 public void setProperty(ControllerSelector selected)
 {
     this.controllerSelecte = selected;
 }
Exemplo n.º 11
0
 protected void event__controllerPlugged()
 {
     ControllerSelector.getInputManager().event__controllerPlugged(getControllerId());
 }
Exemplo n.º 12
0
 protected void event__controllerUnplugged()
 {
     ControllerSelector.getInputManager().event__controllerUnplugged(getControllerId());
     GameObject.DestroyImmediate(gameObject);
 }