Beispiel #1
0
 private void JumpHandler()
 {
     if (TPCInput.GetButtonDown("Jump"))
     {
         Jump();
     }
 }
Beispiel #2
0
        protected virtual void CrouchHandler()
        {
            float capsuleHeight  = colliderHeight;
            float capsuleVelociy = wasColliderVelocityCenter;

            if (TPCInput.GetButtonDown("Crouch") && !isCrouching)
            {
                isCrouching = !isCrouching;
            }
            else if (TPCInput.GetButtonDown("Crouch") && isCrouching)
            {
                if (!Physics.Raycast(transform.position, Vector3.up, colliderHeight))
                {
                    isCrouching = !isCrouching;
                }
            }

            if (isCrouching)
            {
                capsuleHeight  = colliderHeight * crouchHeight;
                capsuleVelociy = wasColliderVelocityCenter * crouchHeight;
            }

            float lastCapsuleHeight = capsuleCollider.height;

            capsuleCollider.height = Mathf.Lerp(capsuleCollider.height, capsuleHeight, crouchSmooth * Time.deltaTime);
            float fixedVelocity = Mathf.Lerp(capsuleCollider.center.y, capsuleVelociy, crouchSmooth * Time.deltaTime);

            capsuleCollider.center = new Vector3(0, fixedVelocity, 0);
            float fixedVerticalPosition = Mathf.Lerp(transform.position.y, transform.position.y + (capsuleCollider.height - lastCapsuleHeight) / 2.0f, crouchSmooth * Time.deltaTime);

            transform.position = new Vector3(transform.position.x, fixedVerticalPosition, transform.position.z);
        }
Beispiel #3
0
 /// <summary>
 /// Update is called every frame, if the MonoBehaviour is enabled.
 /// </summary>
 /// <summary>
 protected virtual void Update()
 {
     if (TPCInput.GetButtonDown("Grab") && !isGrabbing)
     {
         RaycastHit raycastHit;
         if (Physics.Raycast(_camera.position, _camera.forward, out raycastHit, grabRange, layerMask))
         {
             grabObject = raycastHit.transform.GetComponent <GrabObject>();
             if (raycastHit.rigidbody != null && !raycastHit.rigidbody.isKinematic && grabObject != null)
             {
                 grabObject.transform.rotation  = Quaternion.LookRotation(character.transform.forward);
                 springJoint.transform.position = raycastHit.point;
                 springJoint.anchor             = Vector3.zero;
                 springJoint.spring             = spring;
                 springJoint.damper             = damper;
                 springJoint.maxDistance        = distance;
                 springJoint.connectedBody      = raycastHit.rigidbody;
                 isGrabbing = true;
                 StartCoroutine(DragObject(grabObject.Range));
             }
         }
     }
     else if ((TPCInput.GetButtonDown("Grab") && isGrabbing) || !characterHealth.IsAlive)
     {
         inverseKinematics.SetHandIKWeight(0);
         grabObject = null;
         isGrabbing = false;
     }
 }
 /// <summary>
 /// Cursor processing coroutine
 /// </summary>
 /// <returns>yield</returns>
 protected System.Collections.IEnumerator CursorProcess()
 {
     Cursor.visible   = false;
     Cursor.lockState = CursorLockMode.Locked;
     while (true)
     {
         if (TPCInput.GetButtonDown("Menu") && !Cursor.visible)
         {
             Cursor.lockState = CursorLockMode.None;
             Cursor.visible   = true;
         }
         else if (TPCInput.GetButtonDown("Menu") && Cursor.visible)
         {
             Cursor.lockState = CursorLockMode.Locked;
             Cursor.visible   = false;
         }
         yield return(null);
     }
 }