Unity 物体根据手指拖动而转动(可用于物体的360度展示)(手机端)
private Vector3 startFingerPos;  
private Vector3 nowFingerPos;  
private float xMoveDistance;  
private float yMoveDistance;  
private int backValue = 0;  
public GameObject obj;  
void Update()  
{  
    if (Input.touchCount <= 0)  
    {  
        return;  
    }  
  
    if (Input.GetTouch(0).phase == TouchPhase.Began)  
    {  
        //Debug.Log("======开始触摸=====");    
        startFingerPos = Input.GetTouch(0).position;  
    }  
  
    nowFingerPos = Input.GetTouch(0).position;  
  
    if ((Input.GetTouch(0).phase == TouchPhase.Stationary) || (Input.GetTouch(0).phase == TouchPhase.Ended))  
    {  
        startFingerPos = nowFingerPos;  
        //Debug.Log("======释放触摸=====");    
        return;  
    }  
    //          if (Input.GetTouch(0).phase == TouchPhase.Ended) {    
    //                  
    //          }    
    if (startFingerPos == nowFingerPos)  
    {  
        return;  
    }  
    xMoveDistance = Mathf.Abs(nowFingerPos.x - startFingerPos.x);  
    yMoveDistance = Mathf.Abs(nowFingerPos.y - startFingerPos.y);  
  
    if (xMoveDistance > yMoveDistance)  
    {  
        if (nowFingerPos.x - startFingerPos.x > 0)  
        {  
            //Debug.Log("=======沿着X轴负方向移动=====");    
            backValue = -1; //沿着X轴负方向移动    
        }  
        else  
        {  
            //Debug.Log("=======沿着X轴正方向移动=====");    
            backValue = 1; //沿着X轴正方向移动    
        }  
    }  
    else  
    {  
        if (nowFingerPos.y - startFingerPos.y > 0)  
        {  
            //Debug.Log("=======沿着Y轴正方向移动=====");    
            backValue = 2; //沿着Y轴正方向移动    
        }  
        else  
        {  
            //Debug.Log("=======沿着Y轴负方向移动=====");    
            backValue = -2; //沿着Y轴负方向移动    
        }  
  
    }  
    if (backValue == -1)  
    {  
        obj.transform.Rotate(Vector3.up * -1 * Time.deltaTime * 50, Space.World);  
    }  
    else if (backValue == 1)  
    {  
        obj.transform.Rotate(Vector3.up * Time.deltaTime * 50, Space.World);  
    }  
    else if (backValue == 2)  
    {  
        obj.transform.Rotate(Vector3.right * Time.deltaTime * 50, Space.World);  
    }  
    else if (backValue == -2)  
    {  
        obj.transform.Rotate(Vector3.right * -1 * Time.deltaTime * 50, Space.World);  
    }    
  
}   

PC端鼠标拖动而转动参考链接:http://blog.csdn.net/liujunjie612/article/details/54136337
阅读更多
个人分类: Unity3D
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

Unity 物体根据手指拖动而转动(可用于物体的360度展示)(手机端)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭