コード例 #1
0
    private void SprintManager()
    {
        bool wantToSprint = false;

        if (keySprintHold.GetKey())
        {
            wantToSprint = true;
        }
        if (keySprintHold.GetKeyUp())
        {
            wantToSprint = false;
        }
        if (keySprintToggle.GetKeyDown())
        {
            wantToSprint = !wasSprinting;
        }
        if (wantToSprint && gotMoveInput && !isCrouching)
        {
            isSprinting = true;
        }
        else
        {
            isSprinting = false;
        }
        wasSprinting = isSprinting;
    }
コード例 #2
0
 void Update()
 {
     //debug
     if (Input.GetKeyDown(KeyCode.Mouse1))
     {
         rb.velocity += head.transform.forward * 50f;
     }
     if (Input.GetKeyDown(KeyCode.Q))
     {
         if (Time.timeScale < 1f)
         {
             Time.timeScale = 1f;
         }
         else
         {
             Time.timeScale = 0.05f;
         }
     }
     if (Input.GetKeyDown(KeyCode.P))
     {
         EditorApplication.isPaused = !EditorApplication.isPaused;
     }
     //not debug
     if (!paused)
     {
         view.ExecuteUpdate(new PlayerViewNEW.ViewInput(GetLookInput(), keyInteract.GetKeyDown(), keyPrimaryFire.GetKeyDown()));
         ManageToggleAndHoldInput(ref isCrouching, keyCrouchHold, keyCrouchToggle);
         ManageToggleAndHoldInput(ref isSprinting, keySprintHold, keySprintToggle);
         movement.ExecuteUpdate();
     }
 }
コード例 #3
0
ファイル: PlayerView.cs プロジェクト: maxlinke/FPSTest02
 void Update()
 {
     if (Time.timeScale > 0f)
     {
         MouseLook();
         if (Input.GetKeyDown(KeyCode.Mouse0))
         {
             Cursor.lockState = CursorLockMode.Locked;
         }
         if (keyInteract.GetKeyDown())
         {
             if (grabbedObject == null)
             {
                 TryToInteract();
             }
             else
             {
                 DropGrabbedObject(false);
             }
         }
         if (keyPrimaryFire.GetKeyDown())
         {
             if (grabbedObject != null)
             {
                 DropGrabbedObject(true);
             }
         }
         if (keyToggleGUI.GetKeyDown())
         {
             gui.toggleGUI();
         }
     }
 }
コード例 #4
0
    private void CrouchManager()
    {
        bool isGoingToCrouch = wasCrouching;

        if (keyCrouchHold.GetKey())
        {
            isGoingToCrouch = true;
        }
        if (keyCrouchHold.GetKeyUp())
        {
            isGoingToCrouch = false;
        }
        if (keyCrouchToggle.GetKeyDown())
        {
            isGoingToCrouch = !wasCrouching;
        }
        if (!isGoingToCrouch && wasCrouching)
        {
            Vector3    rayOrigin = transform.position + (Vector3.up * col.height / 2f);
            float      rayLength = normalHeight - (col.height / 2f);
            RaycastHit hit;
            if (Physics.Raycast(rayOrigin, Vector3.up, out hit, rayLength, layermaskPlayer))
            {
                if (hit.collider.gameObject.layer != layerWater)
                {
                    isGoingToCrouch = true;
                    Debug.LogWarning("crouchcast hit " + hit.collider.name + ", layer " + LayerMask.LayerToName(hit.collider.gameObject.layer));
                }
            }
        }
        isCrouching = isGoingToCrouch;
        if (isCrouching && col.height > crouchHeight)
        {
            col.height = crouchHeight;
            col.center = new Vector3(0f, crouchHeight / 2f, 0f);
            head.transform.localPosition         = new Vector3(0f, crouchEyeLevel, 0f);
            waterTrigger.transform.localPosition = new Vector3(0f, crouchWaterTriggerPos, 0f);
            if (!isGrounded)
            {
                transform.position = transform.position + (Vector3.up * (normalHeight - crouchHeight) / 2f);
            }
        }
        if (!isCrouching && col.height < normalHeight)
        {
            col.height = normalHeight;
            col.center = new Vector3(0f, normalHeight / 2f, 0f);
            head.transform.localPosition         = new Vector3(0f, normalEyeLevel, 0f);
            waterTrigger.transform.localPosition = new Vector3(0f, normalWaterTriggerPos, 0f);
            if (!isGrounded)
            {
                transform.position = transform.position + (Vector3.down * (normalHeight - crouchHeight) / 2f);
            }
        }
        wasCrouching = isCrouching;
    }
コード例 #5
0
    void Update()
    {
        if (keyPrimaryFire.GetKeyDown())
        {
        }
        if (keySecondaryFire.GetKeyDown())
        {
        }

        if (keyToggleFlashlight.GetKeyDown())
        {
            flashLight.SetActive(!flashLight.activeSelf);
        }
    }
コード例 #6
0
    //utility

    void ManageToggleAndHoldInput(ref bool value, DoubleKey keyHold, DoubleKey keyToggle)
    {
        if (keyHold.GetKey())
        {
            value = true;
        }
        if (keyHold.GetKeyUp())
        {
            value = false;
        }
        if (keyToggle.GetKeyDown())
        {
            value = !value;
        }
    }