(一)鼠标右键控制摄像机绕物体旋转
using UnityEngine;
using System.Collections;
public class Rotate : MonoBehaviour {
public GameObject onion;
Vector2 p1,p2;//用来记录鼠标的位置,以便计算旋转幅度
// Use this for initialization
void Start ()
{
onion=GameObject.Find("Onion");
}// Update is called once per frame
void Update ()
{
if(Input.GetMouseButtonDown(1)){p1=new Vector2(Input.mousePosition.x,Input.mousePosition.y);//鼠标右键按下时记录鼠标位置p1
}if(Input.GetMouseButton(1)){p2=new Vector2(Input.mousePosition.x,Input.mousePosition.y);//鼠标右键拖动时记录鼠标位置p2
//下面开始旋转,仅在水平方向上进行旋转
float dx=p2.x-p1.x;
transform.RotateAround(onion.transform.position,Vector3.up,dx*Time.deltaTime);
}
}
}
(二)鼠标滑轮控制摄像机缩放
void Update ()
{
//Zoom out
if (Input.GetAxis ("Mouse ScrollWheel") < 0) {
if(Camera.main.fieldOfView<=100)
Camera.main.fieldOfView+=2;
if(Camera.main.orthographicSize<=20)
Camera.main.orthographicSize+=0.5F;
}
//Zoom in
if (Input.GetAxis ("Mouse ScrollWheel") > 0) {
if(Camera.main.fieldOfView>2)
Camera.main.fieldOfView-=2;
if(Camera.main.orthographicSize>=1)
Camera.main.orthographicSize-=0.5F;
}
}