怎么在 unity 里鼠标旋转一个物体

老外原版, 简明的先来一个

出处 : 翻墙看吧 Unity tutorial : rotate an object with mouse or touch in 3d

using UnityEngine;  
using System.Collections;  
  
public class ouyangRotObj : MonoBehaviour {  
    float rotSpeed = 100;  
  
    // Use this for initialization  
    void Start () {  
    }  
      
    // Update is called once per frame  
    void Update () {  
    }  
  
    void OnMouseDrag()  
    {  
        float rotX = Input.GetAxis ("Mouse X") * rotSpeed * Mathf.Deg2Rad;  
        float rotY = Input.GetAxis ("Mouse Y") * rotSpeed * Mathf.Deg2Rad;  
  
        transform.Rotate (Vector3.up, -rotX);  
        transform.Rotate (Vector3.right, -rotY);  
        //      transform.RotateAround (Vector3.up, -rotX);  
//      transform.RotateAround (Vector3.up, rotY);  
  
    }  
      
}  

国内半截文章, 搞不懂怎么运行, 留个案底,有时间看:

using UnityEngine;
using System.Collections;

public class ouyangMoveMode : MonoBehaviour {
	public float speed = 20.0F;  
	private float flag;  
	private bool bRotate; 
	// Use this for initialization
	void Start () {
		bRotate = false;  
	}
	
	// Update is called once per frame
	void Update () {
		// 这里乘以Time.deltaTime 函数是为了使旋转效果更加平滑。  
		flag = Input.GetAxis("Mouse X");  
		
		if (Input.GetKey("left")){  
			this.transform.Rotate(Vector3.up*Time.deltaTime*-speed);  
		}  
		if (Input.GetKey("right")){  
			this.transform.Rotate(Vector3.up*Time.deltaTime*speed);  
		}  
	}

	void OnGUI(){  
		if(Event.current.type == EventType.MouseDrag){  
			if(bRotate){  
				transform.Rotate(new Vector3(0, -Input.GetAxis("Mouse X"), 0)*speed);  
			}  
		}  
	}  
	void OnMouseEnter(){  
		clickObj scriptObj = (clickObj)gameObject.GetComponent("clickObj");  
		bool bFlag = clickObj.bDrag;  
		if(!bFlag)  
			bRotate = true;  
		//  print("Enter in horse model");  
	}  
	void OnMouseExit(){  
		bRotate = false;  
		//  print("Exit horse area");  
	}  
	
	void OnCollisionEnter(){  
		print("On collision enter");  
	}  
	void OnTriggerEnter(){  
		print("On trigger enter");  
	}  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值