Rotating Blender object using mouse click

Dear all,

Apologies if this is a duplicated post. I just started on Unity.

I imported a Blender object and trying to rotate on x and y axis using mouse click. Essentially user click and hold the left button and can rotate the object horizontally and vertically. I manage to make it work with rotation however the rotation happening anywhere in the screen.

I want the rotation should happen only if user clicks and holds on the object.

Here is my code.

#pragma strict

//How quickly to rotate the object.
var sensitivityX:float = 15;
var sensitivityY:float = 15;
//Camera that acts as a point of view to rotate the object relative to.
var referenceCamera:Transform;

//The script in Start() is executed before Update(), so we can use it to
//doublecheck our variables have valid values before we try to run the script in Update().
function Start() {
	Debug.Log("CupMovementWithMouseClick Start");
	initialColor = renderer.material.color;	
	//Ensure the referenceCamera variable has a valid value before letting this script run.
	//If the user didn't set a camera manually, try to automatically assign the scene's Main Camera.
	if (!referenceCamera) {
		if (!Camera.main) {
			Debug.LogError("No Camera with 'Main Camera' as its tag was found. Please either assign a Camera to this script, or change a Camera's tag to 'Main Camera'.");
		referenceCamera = Camera.main.transform;
//Update() is called once every frame, and should be used to run script that
//should be doing something constantly. In this case, we potentially want to
//rotate the object constantly if the user is always moving the mouse.
function Update () {
	Debug.Log("CupMovementWithMouseClick Update");
	//Get how far the mouse has moved by using the Input.GetAxis().
	var rotationX:float = Input.GetAxis("Mouse X") * sensitivityX;
	var rotationY:float = Input.GetAxis("Mouse Y") * sensitivityY;

	//Rotate the object around the camera's "up" axis, and the camera's "right" axis.
	// Rotate when left mouse button hold.
	if(Input.GetButton ("Fire1")){
		Debug.Log("CupMovementWithMouseClick Fire1");				
		// Also only rotate when mouse actually touches the object.						
		if ( Input.GetMouseButtonDown(0)){
			var hit:RaycastHit;
			var ray:Ray = Camera.main.ScreenPointToRay(Input.mousePosition);
			if(Physics.Raycast(ray, hit, 100.0)) {
				transform.RotateAroundLocal( referenceCamera.up		, -Mathf.Deg2Rad * rotationX );
				transform.RotateAroundLocal( referenceCamera.right	,  Mathf.Deg2Rad * rotationY );	


I’m on mobile right now, so I can’t give exact references, but you need to check the “hit” Ray object to see if it is the blender object. I believe you can directly access the object’s Tag value from the hit object and compare with the Tag value you set for that object in the scene.