Esempio n. 1
0
        private void HandleCharacterInput()
        {
            //TODO: Don't make a new one every frame, cache it.
            PlayerCharacterInputs characterInputs = new PlayerCharacterInputs
            {
                moveAxisForward = Player.GetAxisRaw(MOVE_VERTICAL),
                moveAxisRight   = Player.GetAxisRaw(MOVE_HORIZONTAL),
                cameraRotation  = playerCamera.TargetTransforms[0].rotation,
                jumpDown        = Player.GetButtonDown(JUMP_KEY),
            };

            inputs = characterInputs;

            SetInputs(ref characterInputs);
        }
Esempio n. 2
0
        private void HandleCharacterInput()
        {
            PlayerCharacterInputs __characterInputs = new PlayerCharacterInputs
            {
                MoveAxisForward = Input.GetAxisRaw(VerticalInput),
                MoveAxisRight   = Input.GetAxisRaw(HorizontalInput),
                CameraRotation  = CharacterCamera.Transform.rotation,
                JumpDown        = Input.GetKeyDown(KeyCode.Space),
                CrouchDown      = Input.GetKeyDown(KeyCode.C),
                CrouchUp        = Input.GetKeyUp(KeyCode.C)
            };

            // Build the CharacterInputs struct

            // Apply inputs to character
            characterController.SetInputs(ref __characterInputs);
        }
    private void HandleCharacterInput()
    {
        PlayerCharacterInputs characterInputs = new PlayerCharacterInputs();

        // Build the CharacterInputs struct
        //characterInputs.MoveAxisForward = Input.GetAxisRaw(VerticalInput);
        //characterInputs.MoveAxisRight = Input.GetAxisRaw(HorizontalInput);
        //characterInputs.CameraRotation = OrbitCamera.Transform.rotation;
        characterInputs.JumpDown = Input.GetKeyDown(KeyCode.Space);

        // ***Get Physics.Raycast hit.point
        characterInputs.Destination = GetHitPointFromMouse();

        // ***Crouch
        characterInputs.CrouchDown = Input.GetKeyDown(KeyCode.C);
        characterInputs.CrouchUp   = Input.GetKeyUp(KeyCode.C);
        // Apply inputs to character
        Character.SetInputs(ref characterInputs);
    }
Esempio n. 4
0
    /// <summary>
    /// This is called every frame by MyPlayer in order to tell the character what its inputs are
    /// </summary>
    public void SetInputs(ref PlayerCharacterInputs inputs)
    {
        // Clamp input
        Vector3 moveInputVector = Vector3.ClampMagnitude(new Vector3(inputs.MoveAxisRight, 0f, inputs.MoveAxisForward), 1f);



        // Calculate camera direction and rotation on the character plane
        Vector3 cameraPlanarDirection = Vector3.ProjectOnPlane(inputs.CameraRotation * Vector3.forward, Controller2D.CharacterUp).normalized;

        if (cameraPlanarDirection.sqrMagnitude == 0f)
        {
            cameraPlanarDirection = Vector3.ProjectOnPlane(inputs.CameraRotation * Vector3.up, Controller2D.CharacterUp).normalized;
        }
        Quaternion cameraPlanarRotation = Quaternion.LookRotation(cameraPlanarDirection, Controller2D.CharacterUp);

        //cameraPlanarRotation *= Quaternion.FromToRotation (Motor.CharacterUp, _zTerrainNormal);


        // Move and look inputs

        //_moveInputVector = Quaternion.FromToRotation (Motor.CharacterUp, Motor.GroundingStatus.GroundNormal) *  cameraPlanarRotation * moveInputVector;
        //_lookInputVector = _moveInputVector.normalized;
//			Vector3 lookInputVector = Vector3.ClampMagnitude (new Vector3 (inputs.LookAxisRight, 0f, inputs.LookAxisForward), 1f);
        _moveInputVector = cameraPlanarRotation * moveInputVector;
//			_lookInputVector = (cameraPlanarRotation * (lookInputVector));

        if (MoveAction != null)
        {
            MoveAction.RequestAction(_moveInputVector);
        }

        if (JumpAction != null && inputs.JumpDown)
        {
            JumpAction.RequestAction(_moveInputVector);
        }

        if (SlideAction != null)
        {
            SlideAction.RequestAction(_moveInputVector);
        }
    }
Esempio n. 5
0
        public void GetInputFromEvent()
        {
            swipeType = InputManager.GetMostRecentInputType();
            PlayerCharacterInputs characterInputs = new PlayerCharacterInputs();

            switch (swipeType)
            {
            case InputManager.SwipeType.swipeForwardUp:
                characterInputs.jumpDown = true;
                break;

            case InputManager.SwipeType.swipeBackwards:
                characterInputs.changeDirection = true;
                break;

            case InputManager.SwipeType.swipeDown:
                characterInputs.slideDown = true;
                break;
            }
            Character.SetInputs(ref characterInputs);
        }
    private void UpdateDirectInput(Vector3 a_move)
    {
        /*if (a_move.x == 0 && a_move.z == 0 && !Input.GetKeyDown(KeyCode.Space))
         * {
         *  AICharacterInputs inputs = new AICharacterInputs();
         *
         *  _characterController.SetInputs(ref inputs);
         *  _characterController.Motor.BaseVelocity = Vector3.zero;
         *  return;
         * }*/

        PlayerCharacterInputs characterInputs = new PlayerCharacterInputs
        {
            // Build the CharacterInputs struct
            MoveAxisForward = a_move.z * MoveSpeed,
            MoveAxisRight   = a_move.x * MoveSpeed,
            CameraRotation  = Quaternion.identity,
            JumpDown        = Input.GetKeyDown(KeyCode.Space)
        };

        // Apply inputs to character
        _characterController.SetInputs(ref characterInputs);
    }
Esempio n. 7
0
        private void HandleCharacterInput()
        {
            PlayerCharacterInputs characterInputs = new PlayerCharacterInputs();

            // Build the CharacterInputs struct
            ////characterInputs.MoveAxisForward = Input.GetAxisRaw(VerticalInput);
            ////characterInputs.MoveAxisRight = Input.GetAxisRaw(HorizontalInput);
            //characterInputs.inputString = Input.inputString;



            //characterInputs.changeDirection = Input.GetKeyDown(KeyCode.B);
            //characterInputs.slideDown = Input.GetKeyDown(KeyCode.N);
            //characterInputs.jumpDown = Input.GetKeyDown(KeyCode.Space);
            //characterInputs.ledgeGrabHold = Input.GetKey(KeyCode.LeftShift);
            //characterInputs.crouchDown = Input.GetKeyDown(KeyCode.S);
            //characterInputs.crouchUp = Input.GetKeyUp(KeyCode.S);
            //characterInputs.worldMoveDown = Input.GetKeyDown(KeyCode.M);



            // Apply inputs to character
            Character.SetInputs(ref characterInputs);
        }
Esempio n. 8
0
    public void SetInputs(ref PlayerCharacterInputs inputs)
    {
        _ladderUpDownInput = inputs.MoveAxisForward;

        if (_activeLadder)
        {
            if (ClimbLadder == true)
            {
                if (CurrentCharacterState == CharacterState.Default)
                {
                    //_activeLadder = ladder;
                    TransitionToState(CharacterState.Climbing);
                }
            }

            // Transition back to default movement state

            /*else if (CurrentCharacterState == CharacterState.Climbing)
             * {
             *  _climbingState = ClimbingState.DeAnchoring;
             *  _ladderTargetPosition = Motor.TransientPosition;
             *  _ladderTargetRotation = _rotationBeforeClimbing;
             * }*/
        }

        // Clamp input
        moveInputVector = Vector3.ClampMagnitude(new Vector3(inputs.MoveAxisRight, 0f, inputs.MoveAxisForward), 1f);
        // Calculate camera direction and rotation on the character plane
        Vector3 cameraPlanarDirection =
            Vector3.ProjectOnPlane(inputs.CameraRotation * Vector3.forward, Motor.CharacterUp).normalized;

        if (cameraPlanarDirection.sqrMagnitude == 0f)
        {
            cameraPlanarDirection =
                Vector3.ProjectOnPlane(inputs.CameraRotation * Vector3.up, Motor.CharacterUp).normalized;
        }

        Quaternion cameraPlanarRotation = Quaternion.LookRotation(cameraPlanarDirection, Motor.CharacterUp);


        switch (CurrentCharacterState)
        {
        case CharacterState.Default:
        {
            // Move and look inputs
            _moveInputVector = cameraPlanarRotation * moveInputVector;
            _lookInputVector = cameraPlanarDirection;


            // Jumping input
            if (inputs.JumpDown)
            {
            }

            // Crouching input
            if (inputs.CrouchDown)
            {
                _shouldBeCrouching = true;

                if (!_isCrouching)
                {
                    _isCrouching = true;
                    Motor.SetCapsuleDimensions(0.5f, 1f, 0.5f);
                }
            }
            else if (inputs.CrouchUp)
            {
                _shouldBeCrouching = false;
            }

            break;
        }

        case CharacterState.Swimming:


            _moveInputVector = cameraPlanarRotation * moveInputVector;
            _lookInputVector = cameraPlanarDirection;
            break;

        case CharacterState.Weapon_Strafe:
            _moveInputVector = cameraPlanarRotation * moveInputVector;
            _lookInputVector = cameraPlanarDirection;
            break;
        }
    }
Esempio n. 9
0
    private void HandleCharacterInput()
    {
        PlayerCharacterInputs characterInputs = new PlayerCharacterInputs();


        switch (CurrentCharacterState)
        {
        case CharacterState.Default:
            if (_Joystick.Direction.magnitude >= 0.4f)
            {
                characterInputs.MoveAxisForward = _Joystick.Vertical;
                characterInputs.MoveAxisRight   = _Joystick.Horizontal;

                MaxStableMoveSpeed = 4f;
            }
            else
            {
                characterInputs.MoveAxisForward = 0;
                characterInputs.MoveAxisRight   = 0;
                MaxStableMoveSpeed = 0f;
            }

            break;

        case CharacterState.Swimming:
            if (_Joystick.Direction.magnitude >= 0.4f)
            {
                _Animator.SetBool("a_waterswim", true);
                _Animator.SetBool("a_wateridle", false);
                characterInputs.MoveAxisForward = _Joystick.Vertical;
                characterInputs.MoveAxisRight   = _Joystick.Horizontal;
            }
            else
            {
                _Animator.SetBool("a_waterswim", false);
                _Animator.SetBool("a_wateridle", true);
            }

            break;

        case CharacterState.Climbing:
            if (_Joystick.Direction.magnitude >= 0.4f)
            {
                characterInputs.MoveAxisForward = _Joystick.Vertical;
                if (_Joystick.Vertical > 0.5f)
                {
                    characterInputs.MoveAxisForward = 1;
                }
                else if (_Joystick.Vertical < 0.5f)
                {
                    characterInputs.MoveAxisForward = -1;
                }
            }


            break;

        case CharacterState.Weapon_Strafe:
            characterInputs.MoveAxisForward = _Joystick.Vertical;
            characterInputs.MoveAxisRight   = _Joystick.Horizontal;
            MaxStableMoveSpeed = 2;
            break;
        }


        _Animator.SetFloat("a_vertical", characterInputs.MoveAxisForward);
        _Animator.SetFloat("a_horizontal", characterInputs.MoveAxisRight);
        characterInputs.CameraRotation = OrbitCamera.Transform.rotation;
        characterInputs.CrouchDown     = Crouched;
        characterInputs.CrouchUp       = Crouched;


        SetInputs(ref characterInputs);
    }