Пример #1
0
 private void InteractInfoManager()
 {
     interactTestTimer += Time.fixedDeltaTime;
     if (interactTestTimer >= interactTestInterval)
     {
         if (grabbedObject == null)
         {
             bool       enableDisplay = false;
             RaycastHit hit;
             if (Physics.Raycast(head.transform.position, head.transform.forward, out hit, interactRange, layermaskInteract))
             {
                 if (TagManager.CompareTag("Interactable", hit.collider.gameObject))
                 {
                     if (hit.collider.gameObject != lastInteractObject)
                     {
                         currentInteractObject = hit.collider.gameObject.GetComponent <IInteractable>();
                     }
                     if (currentInteractObject != null)
                     {
                         gui.SetInteractDisplayMessage(currentInteractObject.GetDescription());
                     }
                     else
                     {
                         gui.SetInteractDisplayMessage(null);
                     }
                     lastInteractObject = hit.collider.gameObject;
                     enableDisplay      = true;
                 }
                 else
                 {
                     if (hit.collider.attachedRigidbody != null)
                     {
                         Rigidbody otherRB = hit.collider.attachedRigidbody;
                         if ((!otherRB.isKinematic) && otherRB.mass <= maxPickupObjectMass)
                         {
                             if (!TagManager.CompareTag("NonGrabbable", hit.collider.gameObject))
                             {
                                 gui.SetInteractDisplayMessage("Pick up");
                                 enableDisplay = true;
                             }
                         }
                     }
                 }
             }
             if (enableDisplay)
             {
                 gui.EnableInteractDisplay();
             }
             else
             {
                 gui.DisableInteractDisplay();
             }
         }
         else
         {
             gui.DisableInteractDisplay();
         }
         interactTestTimer -= interactTestInterval;
     }
 }
Пример #2
0
 void FixedUpdate()
 {
     PlayerMovementNEW.MoveInput moveInput;
     if (!paused)
     {
         Vector3 dirInput = GetDirectionalInput();
         moveInput = new PlayerMovementNEW.MoveInput(dirInput, keyJump.GetKey(), isCrouching, isSprinting);
     }
     else
     {
         moveInput = new PlayerMovementNEW.MoveInput(Vector3.zero, false, isCrouching, isSprinting);
     }
     view.ExecuteFixedUpdate();
     movement.ExecuteFixedUpdate(moveInput);
     gui.SetInteractDisplayMessage(movement.DebugInfo);
     if (view.isHoldingOntoSomething)
     {
         view.ManageGrabbedObject();
     }
 }