zoukankan      html  css  js  c++  java
  • 旋转缩放代码

    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); 
        } 
    }
  • 相关阅读:
    Vue.js中学习使用Vuex详解
    vuex存储和本地存储(localstorage、sessionstorage)的区别
    Java 编译与反编译
    Vue导航守卫beforeRouteEnter,beforeRouteUpdate,beforeRouteLeave详解
    Vue生命周期简介和钩子函数
    微信开发----被动回复用户消息
    C#4.0 System.Dynamic
    Mvc5 控制器,视图简单说明
    JQuery 禁用后退按钮
    防止用户多次点击
  • 原文地址:https://www.cnblogs.com/123ing/p/3750711.html
Copyright © 2011-2022 走看看