Example #1
0
    // Update is called once per frame
    void Update()
    {
        if (playerRole != null)
        {
            float _inputHorizontal = Input.GetAxisRaw("Horizontal");
            float _inputVertical   = Input.GetAxisRaw("Vertical");
            bool  _inputShift      = Input.GetButton("Shift");

            if (inputHorizontal != _inputHorizontal || inputVertical != _inputVertical || inputShift != _inputShift)
            {
                inputHorizontal = _inputHorizontal;
                inputVertical   = _inputVertical;
                inputShift      = _inputShift;
                MyLogger.Debug("x:{0},y:{1},s:{2}", inputHorizontal, inputVertical, inputShift);
                if (inputHorizontal != 0 || inputVertical != 0)
                {
                    if (_inputShift)
                    {
                        playerRole.Command(RoleCommand.Run, new Vector2(inputHorizontal, inputVertical));
                    }
                    else
                    {
                        playerRole.Command(RoleCommand.Walk, new Vector2(inputHorizontal, inputVertical));
                    }
                }
                else
                {
                    playerRole.Command(RoleCommand.Stand);
                }
            }
        }
    }