var RotateSpeed=40;  //定义旋转速度为整数且为40
var mouseon : int;   //定义mouseon为整数，记录鼠标是否位于物体上
static var timecount=0;   //定义timecount为全球变量方便其他程序调用，且为整数初始为0，用于记录时间
var tc=0;  //tc、tn、tb三个变量用于角度测量时算法利用，无实际意义
var tn=0;
var tb=0;

function OnMouseEnter() //当鼠标位于该物体上时，该函数触发
{
	renderer.material.color = Color.red; //该物体颜色变为红色
	mouseon=1;  //鼠标位于物体上
	return mouseon;
}

function OnMouseExit()  //当鼠标不在该物体上时，该函数触发
{
	renderer.material.color = Color.yellow;//该物体颜色变为黄色
	mouseon=0;  //鼠标不在物体上
	return mouseon;
}

function Update ()
{
	if( mouseon && Input.GetButton("Fire1") && timecount<240 && timecount>-1|| Input.GetKey("]") && timecount<240 && timecount>-1)  //如果时间在0-240之间，若鼠标在旋钮上且持续按下鼠标左键，或者持续按下]键，旋钮顺时针旋转，松开按键即停止旋转
	{
		tc = timecount;
		this.transform.Rotate(Vector3.up*Time.deltaTime*RotateSpeed); //延Y轴顺时针随时间缓慢旋转
		timecount = Vector3.Angle(transform.forward, Vector3.forward); //获取物体Z轴与世界坐标Z轴的夹角，将其赋值给timecount
		if(timecount-tc<0) timecount=360-timecount;  //若角度逐渐减小，按新算法记录角度
		tn=timecount;
		GameObject.Find("Time").guiText.text=''+timecount; //Time程序中的显示值为timecount
	}
	if( mouseon && Input.GetButton("Fire2") && timecount>0 || Input.GetKey("[") && timecount>0) //若计时器大于0，且鼠标在物体上且持续按下鼠标右键，或者持续按下[键，旋钮逆时针旋转，松开按键即停止旋转
	{
		tc = timecount;
		this.transform.Rotate(Vector3.up*Time.deltaTime*-RotateSpeed); //延Y轴逆时针随时间缓慢旋转
		timecount = Vector3.Angle(transform.forward, Vector3.forward); //获取物体Z轴与世界坐标Z轴的夹角，将其赋值给timecount
		if(timecount-tc<0) //利用新的算法记录角度，读者自己揣摩
		{
			timecount=360-timecount;
			tb=tn;
			tn=timecount;
			if(tn-tb>0) timecount=360-timecount;
		}
		GameObject.Find("Time").guiText.text=''+timecount; //Time程序中的显示值为timecount
	}
	if(mouseon && Input.GetButtonDown("Fire2") && timecount==0|| Input.GetKeyDown("[") && timecount==0) //若计时器本身为0，则第一次鼠标左键点击或者按下]键，直接逆时针旋转一定角度，计时器进入不计时状态
	{
		this.transform.Rotate(Vector3.up*100*-RotateSpeed);//立即逆时针旋转一定角度
		timecount=-1; //计时器进入不计时状态
		GameObject.Find("Time").guiText.text=''+timecount; //Time程序中的显示值为timecount
	}
	if(mouseon && Input.GetButtonDown("Fire1") && timecount==-1|| Input.GetKeyDown("]") && timecount==-1) //若计时器本身为-1即不计时状态，则第一次鼠标右键点击或者按下[键，直接顺时针旋转一定角度
	{
		this.transform.Rotate(Vector3.up*100*RotateSpeed); //立即顺时针旋转一定角度
		timecount=0;  //计时器进入计时状态
		GameObject.Find("Time").guiText.text=''+timecount; //Time程序中的显示值为timecount
	}
}