defining a relative axis of rotation

how can I rotateAround something on the X and Y, but lock the cameras rotation around the Z axis.

so what ends up happening, as I use the mouse to rotate around my camera’s Z rotation value slowly creeps away from 0 and its causing my camera to eventually spin about the Z axis. I want the camera to rotate around the target, but remain locked in the z posisition.

so far im certain it has to do with the line where i define the rightAxis, but I dont know of any other way to do this…

	using UnityEngine;
	using System.Collections;
	
	public class camera_control : MonoBehaviour {
		
		
		public Transform target;
		private float v;
		private float h;
		private float w;
		
		private Vector3 rightAxis;	
		
		private float hoSensitivity = 2;
		private float voSensitivity = 2;
		
		
		// Use this for initialization
	void Start () {	
		}
		
		// Update is called once per frame
	void Update () {
		
			h = Input.GetAxis("Mouse X");
			v = Input.GetAxis("Mouse Y");
				
			//rightAxis = transform.right;
	
	
		if(Input.GetMouseButtonDown(0)) //0 is left, 1 is right, 2 is middle mouse button
			{
	    		//raycast for taget change here or to deselect the target.
			}
	
		if(Input.GetMouseButton(1)) //0 is left, 1 is right, 2 is middle mouse button
			{
				transform.RotateAround(target.position, Vector3.up, h * hoSensitivity); //orbit left/right
				rightAxis = transform.right;
				transform.RotateAround(target.position, rightAxis, v * voSensitivity); //orbit up/down
			}
			
	
		if(Input.GetMouseButtonUp(2)) //0 is left, 1 is right, 2 is middle mouse button
			{ 
	    		//do something when the mouse button was just released
			}
		
			
		}//end update
		
	}//end script

fixed the problem with help from another location.

moved my assignement of rightAxis into the mouse click function.