物品展示必备代码(旋转与缩放代码…

using UnityEngine;   
 
 
public class MouseFollowRotation : 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);   
 
 
                              //Unity3D教程手册:[url]www.unitymanual.com[/url]
 
 
                         
 
 
 
                        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;   
 
                       
 
                          //Unity3D教程手册:[url]www.unitymanual.com[/url]
 
 
               
 
       
 
 
      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);   
 
       
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值