Camera Reset on button up

hello unity community i need some help with a c# script. im using one of the unity mouse look script and im trying to make it reset its rotation on key up smoothly. here is the c# script. you will notice that im having a problem on line 74.

using UnityEngine;
using System.Collections;

/// MouseLook rotates the transform based on the mouse delta.
/// Minimum and Maximum values can be used to constrain the possible rotation

/// To make an FPS style character:
/// - Create a capsule.
/// - Add a rigid body to the capsule
/// - Add the MouseLook script to the capsule.
///   -> Set the mouse look to use LookX. (You want to only turn character but not tilt it)
/// - Add FPSWalker script to the capsule

/// - Create a camera. Make the camera a child of the capsule. Reset it's transform.
/// - Add a MouseLook script to the camera.
///   -> Set the mouse look to use LookY. (You want the camera to tilt up and down like a head. The character already turns.)
[AddComponentMenu("Camera-Control/Mouse Look")]
public class MouseLook1 : MonoBehaviour {

	public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 }
	public RotationAxes axes = RotationAxes.MouseXAndY;
	public float sensitivityX = 15F;
	public float sensitivityY = 15F;

	public float minimumX = -360F;
	public float maximumX = 360F;

	public float minimumY = -60F;
	public float maximumY = 60F;
	public float rotationDamping = 10F;

	float rotationX = 0F;
	float rotationY = 0F;
	
	Quaternion originalRotation;

	void Update ()
	{
		if(Input.GetMouseButton(1)) {
		if (axes == RotationAxes.MouseXAndY)
		{
			// Read the mouse input axis
			rotationX += Input.GetAxis("Mouse X") * sensitivityX;
			rotationY += Input.GetAxis("Mouse Y") * sensitivityY;

			rotationX = ClampAngle (rotationX, minimumX, maximumX);
			rotationY = ClampAngle (rotationY, minimumY, maximumY);
			
			Quaternion xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up);
			Quaternion yQuaternion = Quaternion.AngleAxis (rotationY, Vector3.left);
			
			transform.localRotation = originalRotation * xQuaternion * yQuaternion;
		}
		else if (axes == RotationAxes.MouseX)
		{
			rotationX += Input.GetAxis("Mouse X") * sensitivityX;
			rotationX = ClampAngle (rotationX, minimumX, maximumX);

			Quaternion xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up);
			transform.localRotation = originalRotation * xQuaternion;
		}
		else
		{
			rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
			rotationY = ClampAngle (rotationY, minimumY, maximumY);

			Quaternion yQuaternion = Quaternion.AngleAxis (rotationY, Vector3.left);
			transform.localRotation = originalRotation * yQuaternion;
		}
	}
		if (Input.GetMouseButtonUp(1)) {
			//print("Camera Reset");
			//camera.transform.Rotate(0,0,0);
			public wantedRotation = Quaternion.LookRotation(0,0,0,0);
			transform.rotation = Quaternion.Slerp (transform.rotation, wantedRotation, Time.deltaTime * rotationDamping);

			}
}
	
	void Start ()
	{
		// Make the rigid body not change rotation
		if (rigidbody)
			rigidbody.freezeRotation = true;
		originalRotation = transform.localRotation;
	}
	
	public static float ClampAngle (float angle, float min, float max)
	{
		if (angle < -360F)
			angle += 360F;
		if (angle > 360F)
			angle -= 360F;
		return Mathf.Clamp (angle, min, max);
	}
}

I think that the GetMouseButtonUp function only returns true during the frame that the button was released.

So you could try replacing the line with GetMouseButtonUp with just and else-statement.

//ohm

thanks ohm but that doesnt seem to fix my problem either. if u look i have it print something on mouse up. it would print that if the mouse up was release but it would not reset the camera which is why im wondering why will it not reset the camera but it will print what i have on there on button up.

Does your debug output get printed multiple times or only one time? Your Slerp will move closer to target a small step every frame. So it should be called multiple times.

Did you try changing

if (Input.GetMouseButtonUp(1)) {

to

if (!Input.GetMouseButton(1)) {

Once i added the ! in front of the Input then it started to print it repeatedly but once i remove ! it stops and only print it after button up.

Did you also remove the ‘Up’ from GetMouseButtonUp?

no because on GetMouseButton(1) i have it setup so that u can rotate the camera around but on button up the camera reset itself.