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