Is there a way to take the code for Vector 2 Input action and change it until it work for holding the left mouse button instead?

Hello all,
I am following a tutorial to teach me the ins and outs of a 3rd person character controller from scratch.
So far, I have made controls for the character and camera via input action and scripts. I like how it works so far, but the camera is tied to the mouse through Input Action by setting Action Type to Pass Through, Control Type to Vector 2, and the Path for the binding as Delta[Mouse].

This makes it so when you enter the game, your camera is tied to your mouse position. I like how it works, but I want to change the input so it only does this when the user is holding down the left mouse button.
I can tell this is more complicate than changing the Delta Mouse to Mouse Left, so I’m wondering how I might change my scripts etc to make it work as I want instead!
Here is my camera script:

InputManager inputManager;

public Transform targetTransform; //The object the camera will follow
public Transform cameraPivot; //The object the camera uses to pivot (look up and down)
private Vector3 cameraFollowVelocity =;

public float cameraFollowSpeed = 0.2f;
public float cameraLookSpeed = 2;
public float cameraPivotSpeed = 2;

public float lookAngle; //Camera looks up and down
public float pivotAngle; //Camera looks left and right

public float minimumPivotAngle = -35;
public float maximumPivotAngle = 35;

private void Awake()
    inputManager = FindObjectOfType<InputManager>();
    targetTransform = FindObjectOfType<PlayerManager>().transform;

public void HandleAllCameraMovement()

private void FollowPlayer()
    Vector3 targetPosition = Vector3.SmoothDamp //will update to player postion from current position
        (transform.position, targetTransform.position, ref cameraFollowVelocity, cameraFollowSpeed);

    transform.position = targetPosition;

private void RotateCamera()
    lookAngle = lookAngle + (inputManager.cameraInputX * cameraLookSpeed);
    pivotAngle = pivotAngle - (inputManager.cameraInputY * cameraPivotSpeed);
    pivotAngle = Mathf.Clamp(pivotAngle, minimumPivotAngle, maximumPivotAngle);

    Vector3 rotation =;
    rotation.y = lookAngle;
    Quaternion targetRotation = Quaternion.Euler(rotation);
    transform.rotation = targetRotation;

    rotation =;
    rotation.x = pivotAngle;
    targetRotation = Quaternion.Euler(rotation);
    cameraPivot.localRotation = targetRotation;


I personally make my own type of input handler, already described within this comment:

But once those values are set in a Global static class, not only can you easily reference them when and as needed, but you can perform complex input checks, roughly said:

if (Global.selectClick) // use "MouseButton" not MouseButtonDown
     // mouse delta call
     // if checks
     // code to run

That way, depending on what script you currently have enabled, or are running off of, will use the Inputs as needed, and only call the information it needs when needed. As you may not want certain parts of it to run while while in different parts of your game.

Also another strategy I used for my own InputHandler system was to say:

if (LeftMouseButtonDown) 
     int a++; 

     if (a < 30(frames/time)) 
           mouseStartPress = true 
     else if { mouseStartHold = true; } 
     else if { etc... }

Or something along those lines, if you really want to get in depth about how certain functions can be defined within inputs. Also if you make cheat codes or certain ways things might need to run “if only” certain checks have been passed.