//void FixedUpdate() //{ // if (isLerping) // { // float timeSinceStarted = Time.time - timeStartedLerping; // float percentageComplete = timeSinceStarted / timeTakenDuringLerp; // rotationAngle = Quaternion.Lerp(startPosition, endPosition, percentageComplete); // //When we've completed the lerp, we set _isLerping to false // if (percentageComplete >= 1.0f) // { // isLerping = false; // } // } //} private void HandleCharacterInput() { PlayerCharacterInputsRootMotion characterInputs = new PlayerCharacterInputsRootMotion(); // 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(); // ***Get rotation angle //characterInputs.Rotation = rotationAngle; //characterInputs.MoveToPosition = hit; //characterInputs.WalkSpeed = runSpeed; //characterInputs.MouseClick = mouseClick; // ***Crouch if (Input.GetKeyDown(KeyCode.C)) { timeSinceRandomCrouch = Time.time + coolDownRandomIdleTime; m_Crouching = !m_Crouching; } if (m_Crouching) { if (Time.time >= timeSinceRandomCrouch) { randomCrouchNumber = (float)Random.Range(0, idleCrouchAnimCount); SetCooldownCrouchTime(); } } if (Time.time >= timeSinceRandomStand) { randomStandNumber = (float)Random.Range(0, idleStandAnimCount); SetCooldownStandTime(); } characterInputs.Crouch = m_Crouching; //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 PlayerCharacterInputsRootMotion inputs) { // Axis inputs _targetForwardAxis = inputs.MoveAxisForward; _targetRightAxis = inputs.MoveAxisRight; // Crouching input if (inputs.Crouch) { m_Crouching = true; if (m_Crouching) { Motor.SetCapsuleDimensions(0.7f, 1f, 0.7f); navAgent.height = 1.2f; //MeshRoot.localScale = new Vector3(1f, 0.5f, 1f); } } else { m_Crouching = false; Motor.SetCapsuleDimensions(0.5f, 2f, 1f); navAgent.height = 2f; } if (inputs.JumpDown) { m_jumping = true; _timeSinceJumpRequested = 0f; _jumpRequested = true; } else { m_jumping = false; } //rotation = inputs.Rotation; //destination = inputs.Destination; //movePosition = inputs.MoveToPosition; //walkSpeed = inputs.WalkSpeed; //runSpeed = inputs.RunSpeed; //sprintSpeed = inputs.SprintSpeed; //crouchSpeed = inputs.CrouchSpeed; //mouseClick = inputs.MouseClick; }