public override void Update() { if (UIHelperController.Instance.actionsToComplete.Contains(UIHelperController.HelperAction.Drag)) { UIHelperController.Instance.DisableHelper(UIHelperController.HelperAction.Drag); } var vector3D = PlayerUtils.RetargetVector(_controller.movementVector, _controller.cameraTransform, _controller.joystickDeadZone); vector3D *= Mathf.Lerp(_controller.minSpeed, _controller.maxSpeed, _controller.movementVector.magnitude); if (_controller.moveObject && _controller.moveObject.canMove && _controller.inputMoveObject && !_controller.scannerSword.UsingScannerInHand() && vector3D.magnitude >= _controller.joystickDeadZone) { if (PlayerUtils.InputDirectionTolerance(_controller.moveObject.moveVector, _controller.moveObject.angleToAllowMovement, _controller.cameraTransform, _controller.movementVector) && _controller.moveObject.canPull) { _controller.characterController.Move(_controller.moveObject.moveVector * (_controller.moveObject.speedWhenMove * Time.deltaTime)); _controller.moveObject.UnlockPosConstraints(); _controller.moveObject.Pull(); _controller.animator.SetBool("isDragging", true); _controller.animator.SetBool("isPushing", false); } if (PlayerUtils.InputDirectionTolerance(-_controller.moveObject.moveVector, _controller.moveObject.angleToAllowMovement, _controller.cameraTransform, _controller.movementVector) && _controller.moveObject.canPush) { _controller.characterController.Move(-_controller.moveObject.moveVector * (_controller.moveObject.speedWhenMove * Time.deltaTime)); _controller.moveObject.UnlockPosConstraints(); _controller.moveObject.Push(); _controller.animator.SetBool("isPushing", true); _controller.animator.SetBool("isDragging", false); } if (!_controller.moveObject.moving) { if (_controller.moveObject.swordStabbed) { _controller.scannerIntersect.DeleteIntersections(); } else { _controller.scannerIntersect.CheckIntersections(_controller.moveObject.GetComponent <BoxCollider>()); } _controller.moveObject.moving = true; } if (_controller.characterController.velocity.sqrMagnitude > 0.1f) { _controller.DragSound(); } else { _controller.StopDragSound(); } } else if (_controller.moveObject && vector3D.magnitude < _controller.joystickDeadZone) { _controller.moveObject.moving = false; _controller.animator.SetBool("isPushing", false); _controller.animator.SetBool("isDragging", false); _controller.StopDragSound(); } ExitState(); }