unity3d鼠标键盘漫游场景的转载修改版

	public float f_speed = 10f;  
	public float h_speed = 1f;  
	public float groundDis = 0.1f;  
	public float skyDis = 50f;  
	public Camera camera;  
	// Use this for initialization  
	void Start () {  
		camera = Camera.main;  
		rota = camera.transform.eulerAngles;  
	}  

	// Update is called once per frame  
	void Update () {  
		//鼠标右键  
		if(Input.GetMouseButton(1)){  
			rota.y += Input.GetAxis ("Mouse X") * x_speed;  
			rota.x -= Input.GetAxis ("Mouse Y") * y_speed;  
			Quaternion q = Quaternion.Euler (rota);  
			camera.transform.rotation = q;  
		}  
		//滚轮滑动  
		float middle = Input.GetAxis ("Mouse ScrollWheel");  

		camera.transform.position += -Vector3.up * middle * m_speed + (Vector3.forward * middle * f_speed);  

		//空格键上升  
		if(Input.GetKey(KeyCode.Space)){  
			middle = -0.1f;  
			camera.transform.position += -Vector3.up * middle * m_speed ;// (Vector3.forward * middle * f_speed);  
		}  
		//Ctrl键位下降
		if(Input.GetKey(KeyCode.LeftControl)){  
			middle = 0.1f;  
			camera.transform.position += Vector3.down * middle * m_speed ;//+ (Vector3.forward * middle * f_speed);  
		}  
		//WASD  
		float h = Input.GetAxis ("Horizontal");  
		float v = Input.GetAxis ("Vertical");  
		camera.transform.position += camera.transform.right * h * h_speed;  
		camera.transform.position += camera.transform.forward * v;  
		clamp ();  

	}  
	//限制上升下降的的高度和底端
	private void clamp(){  
		Vector3 upUp;  
		upUp = camera.transform.position;  
		upUp.y = Mathf.Clamp (upUp.y,groundDis,skyDis);  
		camera.transform.position = upUp;  
	}  
}  

猜你喜欢

转载自blog.csdn.net/liyangufo/article/details/79033832