//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);
    }
Ejemplo n.º 2
0
    /// <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;
    }