首页 > 其他 > 详细

旋转缩放代码

时间:2014-05-25 07:43:43      阅读:434      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
using UnityEngine;
using System.Collections;
// 直接放在相机上,控制相机的旋转和缩放 //
public class CameraContro : MonoBehaviour {
    
    public Transform target;             
    public float xSpeed=200, ySpeed=200, mSpeed=10; 
    public float yMinLimit=-50, yMaxLimit=50; 
    public float distance=7, minDistance=2, maxDistance=30; 
    
    //bool needDamping = false; 
    public bool needDamping =true;  
    float damping = 5.0f; 
    
    public float x = 0.0f; 
    public float y = 0.0f; 
    
    
    public void SetTarget( GameObject go ) 
        
        
    { 
        target = go.transform; 
    } 
    // Use this for initialization 
    void Start () { 
        Vector3 angles = transform.eulerAngles; 
        x = angles.y; 
        y = angles.x; 
    } 
    
    // Update is called once per frame 
    void LateUpdate ()  
    { 
        
        
        if (target)  
        { 
            //use the light button of mouse to rotate the camera 
            if( Input.GetMouseButton(0) ) 
            { 
                x += Input.GetAxis("Mouse X") * xSpeed * 0.02f; 
                y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02f; 
                
                y = ClampAngle(y, yMinLimit, yMaxLimit); 
                
                //print(Input.GetAxis("Mouse X")); 
                //print( Input.GetAxis("Mouse Y")); 
                //print(x); 
                //print(y); 
                
                
            }  
            
            
            distance -= Input.GetAxis("Mouse ScrollWheel")*mSpeed; 
            distance = Mathf.Clamp(distance, minDistance, maxDistance); 
            
            
            Quaternion rotation = Quaternion.Euler(y, x, 0.0f); 
            Vector3 disVector = new Vector3( 0.0f, 0.0f, -distance ); 
            Vector3 position = rotation * disVector + target.position; 
            //adjust the camera 
            if( needDamping ) 
            { 
                transform.rotation = Quaternion.Lerp(transform.rotation, rotation, Time.deltaTime*damping); 
                transform.position = Vector3.Lerp(transform.position, position, Time.deltaTime*damping); 
            } 
            else 
            { 
                transform.rotation = rotation; 
                transform.position = position; 
            } 
            
            
        } 
    } 
    
    static float ClampAngle (float angle, float min, float max)  
    { 
        if (angle < -360) 
            angle += 360; 
        if (angle > 360) 
            angle -= 360; 
        return Mathf.Clamp (angle, min, max); 
    } 
}
bubuko.com,布布扣

 

旋转缩放代码,布布扣,bubuko.com

旋转缩放代码

原文:http://www.cnblogs.com/123ing/p/3750711.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!