zoukankan      html  css  js  c++  java
  • 摄像机放缩控制的代码 转来看看的

    --------------按钮控制部分--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);
    }

  • 相关阅读:
    开放GIS标准OGC之路(4)之 解密Filter(摘抄)
    在WCF中使用async/await 关键字的简化的异步编程模型(译)
    WinCE仿真器设置
    oracle PL/SQL编程详解
    oracle 日期格式
    钢笔工具使用教程
    使用Signature Tool自动生成P/Invoke调用Windows API的C#函数声明
    利用bitmap将图片部分颜色透明
    PS圆角图片并保留透明背景
    Script Debugger的使用
  • 原文地址:https://www.cnblogs.com/softimagewht/p/2115074.html
Copyright © 2011-2022 走看看