Camera Movement Panning with middle mouse

Hey there! I have a little question! Now recently I’ve got the code about zoom in and out limit with “Z” Axis! And now I want to know about how to move the camera by holding middle mouse and the camera will slowly move toward the cursor! Like… Get the cursor in the middle of screen thingy! I’m not good with explaining but I’m very very new in Unity…!

Here’s the code I’ve got from zoom in and out limit

using UnityEngine;

public class OrbitalKey : MonoBehaviour
{

    public int Speed = 1;
    public float zoomlimit = -125;
    public float zoomlimitIn = -80;
    void Update()
    {
        float xAxisValue = Input.GetAxis("Horizontal") / Speed;
        float zAxisValue = Input.GetAxis("Vertical") * Speed;

        float zoomDistance = transform.position.z + zAxisValue;
        if (zoomDistance > zoomlimit && zoomDistance < zoomlimitIn)
        {
            transform.position = new Vector3(transform.position.x + xAxisValue, transform.position.y, zoomDistance);
        }
    }
}
`

Can anyone make a code inside this? A code about panning the camera.. And here's some small info

The Camera Position I set is

X = 0 , Y = 0 , Z = -100

The thing I want is..! Pan the camera with Y Axis! And the Y axis limit with " -40 " And " 100"
Second is the X limit with "-100" and "100"

Can anyone help me this? Thank you!
`

I’ve got the basic code set up with X limit…! Just learn!

using UnityEngine;

public class OrbitalKey : MonoBehaviour
{

    public int Speed = 2;
    public float zoomlimit = -125;
    public float zoomlimitIn = -80;
    public float leftLimit = -10;
    public float rightLimit = 10;
    void Update()
    {
        float xAxisValue = Input.GetAxis("Horizontal") * Speed;
        float zAxisValue = Input.GetAxis("Vertical") * Speed;

        float zoomDistance = transform.position.z + zAxisValue;
        float viewDistance = transform.position.x + xAxisValue;
        if (zoomDistance > zoomlimit && zoomDistance < zoomlimitIn && viewDistance > leftLimit && viewDistance < rightLimit)
        {
            transform.position = new Vector3(transform.position.x + xAxisValue, transform.position.y, zoomDistance);
        }
    }
}