c# ignoring if statement

I’m trying to make a c# script to move the players head when s/he right clicks and doesn’t move when not right clicking. But in Unity it seems that the if(Input.GetMouseButtonDown(1)) code is being ignored (I can still move without right clicking) Please tell me what I’m doing wrong asap!

Below is my c# script:

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 MouseLook : 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;

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

	void Update ()
	{
		if(Input.GetMouseButtonDown(1))
		{
			Debug.Log("rightclick");
			if (axes == RotationAxes.MouseXAndY)
			{	
				if (Input.GetMouseButtonDown(1)) {
					// 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);

					if (Input.GetMouseButtonDown(1)) {
						transform.localRotation = originalRotation * xQuaternion * yQuaternion;
					}
				}
			}
			else if (axes == RotationAxes.MouseX)
			{
				if(Input.GetMouseButtonDown(1))
				{
					rotationX += Input.GetAxis("Mouse X") * sensitivityX;
					rotationX = ClampAngle (rotationX, minimumX, maximumX);

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

					Quaternion yQuaternion = Quaternion.AngleAxis (rotationY, Vector3.left);
					if (Input.GetMouseButtonDown(1)) {
						transform.localRotation = originalRotation * yQuaternion;
					}
				}
			}
		}
	}
	
	void Start ()
	{
		// Make the rigid body not change rotation
		if (GetComponent<Rigidbody>())
			GetComponent<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);
	}
}

Please help!!

Well, this code certainly won’t rotate your player even when you hold down the right mouse button because Input.GetMouseButtonDown only returns true for one frame when you press the mouse button down. So the majority of time this script does nothing.

If you can still rotate that means you have another script that does that. Note that i said rotate and not move because that script only handles rotation. If you really ment “movement” (lateral movement in x, y or z) that isn’t done in this script at all.

If you want the user to only be able to rotate the camera / player when holding down the mouse button you have to use

if(Input.GetMouseButton(1))

instead of

if(Input.GetMouseButtonDown(1))

But again, this script only handles rotation, not movement.