modifying the MouseOrbit script

I am using the “MouseOrbitImproved” script with a small modification to only orbit when the LMB is down (by adding the “Input.GetMouseButton(0)” condition to the “LateUpdate” function).  It’s working great, however, I would like to maintain the ability to zoom with the ScrollWhell when the LMB is NOT down. I’ve tried several things without success.  Any help/suggestions would be greatly appreciated!

Thanks,

Alex


var target : Transform;

var distance = 10.0;

var xSpeed = 250.0;

var ySpeed = 120.0;

var yMinLimit = -20;

var yMaxLimit = 80;

var distanceMin = 3;

var distanceMax = 15;

private var x = 0.0;

private var y = 0.0;

 

@script AddComponentMenu("Camera-Control/Mouse Orbit")

function Start () {

    var angles = transform.eulerAngles;

    x = angles.y;

    y = angles.x;

                // Make the rigid body not change rotation

                if (rigidbody)

                                rigidbody.freezeRotation = true;

}

function LateUpdate () {

    if (target && Input.GetMouseButton(0)) {

        x += Input.GetAxis("Mouse X") * xSpeed * distance* 0.02;

        y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02;

                                y = ClampAngle(y, yMinLimit, yMaxLimit);

                                var rotation = Quaternion.Euler(y, x, 0);

                                distance = Mathf.Clamp(distance - Input.GetAxis("Mouse ScrollWheel")*5, distanceMin, distanceMax);

                                var hit : RaycastHit;

                                if (Physics.Linecast (target.position, transform.position, hit)) {

                                                                distance -=  hit.distance;

                                }

        var position = rotation * Vector3(0.0, 0.0, -distance) + target.position;

        transform.rotation = rotation;

        transform.position = position;

                }

}

 

static function ClampAngle (angle : float, min : float, max : float) {

                if (angle < -360)

                                angle += 360;

                if (angle > 360)

                                angle -= 360;

                return Mathf.Clamp (angle, min, max);

}

if(target)
{
if(getMouseButton)
{
//do the x/y stuff
}

  //do the zoom stuff

  //do the other stuff
}