鼠标拖动物体(物体旋转)

2018-04-18  本文已影响0人  Kyle_An

、、、
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CubeMove : MonoBehaviour
{
//是否被拖拽
bool Ondrag = false;
//旋转速度
public float Speed = 6f;
//阻尼速度
private float Tempspeed;
//鼠标沿水平方向移动的增量
private float Axisx;
//鼠标沿竖直方向移动的增量
private float Axisy;
//鼠标移动的距离
private float Cxy;

//接受鼠标按下的事件
void OnMouseDown(){                                       
    Axisx=0f;
    Axisy=0f;
}
//鼠标拖拽时的操作
void OnMouseDrag ()                                            
{
    Ondrag = true;
    //获得鼠标增量
    //Axisx = -Input.GetAxis ("Mouse X");         
    if (Input.mousePosition.x > 500) {
        Axisy = -Input.GetAxis ("Mouse Y");
    } else {
        Axisy = Input.GetAxis ("Mouse Y");
    }
    //计算鼠标移动的长度
    Cxy = Mathf.Sqrt (Axisy * Axisy); 
    //Cxy = Mathf.Sqrt (Axisx * Axisx+ Axisy * Axisy); 
    if(Cxy == 0f){
        Cxy=1f;
    }
}
 //计算阻尼速度
float Rigid ()                                                  
{
    if (Ondrag) {
        Tempspeed = Speed;
    } else {
        if (Tempspeed > 0) {
            //通过除以鼠标移动长度实现拖拽越长速度减缓越慢
            Tempspeed -= Speed*2 * Time.deltaTime / Cxy; 
        } else {
            Tempspeed = 0;
        }
    }
    return Tempspeed;
}

void Update ()                                      
{
    //Debug.Log (Input.mousePosition.x);
    transform.Rotate(new Vector3 (Axisy, 0, 0) * Rigid (), Space.Self);
    if (!Input.GetMouseButton(0)) {
        Ondrag = false;
    }
}

}
、、、

上一篇下一篇

猜你喜欢

热点阅读