摄像机放缩控制的代码 转来看看的

--------------按钮控制部分--GUITest.js--------------------------------------------

var ButtonsActive = true;
var speed = 15.0;

private var switchMenu : String = "OFF";

function OnGUI () {
if(GUI.Button(Rect(52,0,50,30),"Quit"))
{
   Application.Quit();
}
if(GUI.Button(Rect(0,0,50,30),switchMenu))
{
   if(ButtonsActive)
   {
    ButtonsActive = false;
   
    switchMenu = "ON";
   }
   else
   {
    ButtonsActive = true;
   
    switchMenu = "OFF";
   }
}
//Debug.Log(ButtonsActive);
    if (ButtonsActive)
{   
   if( GUI.RepeatButton(Rect(Screen.width/2+49,(Screen.height-45),30,30),"-")){

    transform.Translate(0,0,-Time.deltaTime * speed);   
   
   }
  
   if( GUI.RepeatButton(Rect(Screen.width/2+16.5,(Screen.height-45),30,30),"+")) {

    transform.Translate(0,0,Time.deltaTime * speed);
   }
  
   if( GUI.RepeatButton(Rect(Screen.width/2-49,(Screen.height-45),30,30),"<")) {

    MouseOrbit2.x-=Time.deltaTime * speed;
   }


   if( GUI.RepeatButton(Rect(Screen.width/2-16.5,(Screen.height-45),30,30),">")) {
  
    MouseOrbit2.x+=Time.deltaTime * speed;
   }
  
   if( GUI.RepeatButton(Rect(Screen.width/2-80.5,(Screen.height-45),30,30),"A")) {

    MouseOrbit2.y-=Time.deltaTime * speed;
   }


   if( GUI.RepeatButton(Rect(Screen.width/2-112,(Screen.height-45),30,30),"V")) {
  
    MouseOrbit2.y+=Time.deltaTime * speed;
   }

    }
}

--------------鼠标控制部分--MouseOrbit2.js--------------------------------------------

var target : Transform;
var xSpeed = 250.0;
var ySpeed = 120.0;

var yMinLimit = -20;
var yMaxLimit = 80;

var initDis = 20;
var minDis = 3.0;
var maxDis = 50.0;

var wheelSpeed = 5;


static var x = 0.0;
static var y = 0.0;

static var distance;

private var position;
private var rotation;

function Start () {

x = 130;
y = 30;

transform.rotation = Quaternion.Euler(y, x, 0);;
transform.position = Quaternion.Euler(y, x, 0) * Vector3(0.0, 0.0, -initDis) + target.position;

// Make the rigid body not change rotation
   if (rigidbody)
   rigidbody.freezeRotation = true;

}

function Update () {
    if (target) {
   distance = Vector3.Distance(target.position,transform.position);
   if(Input.GetMouseButton(0)){
    x += Input.GetAxis("Mouse X") * xSpeed * 0.02;
    y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02;
   
    y = ClampAngle(y, yMinLimit, yMaxLimit);
   }   
  
   distance-= Input.GetAxis("Mouse ScrollWheel")*wheelSpeed;//获取鼠标中建响应
   distance = Mathf.Clamp(distance,minDis,maxDis);//距离取最大值和最小值
  
   rotation = Quaternion.Euler(y, x, 0);
   position = rotation * Vector3(0.0, 0.0, -distance) + target.position;
   
   transform.rotation = rotation;
   transform.position = position;
  
}
}

static function ClampAngle (angle : float, min : float, max : float) {
if (angle < -360)
   angle += 360;
if (angle > 360)
   angle -= 360;
return Mathf.Clamp (angle, min, max);
}

你可能感兴趣的:(代码)