Unity简单触屏判断

来源:互联网 发布:windows视频截gif 编辑:程序博客网 时间:2024/06/06 10:07
单手旋转,双手改变相机的view值(类似拉近放远)
 if (Input.touchCount <= 0)        {            return;        }        if (Input.touchCount == 1)        {            /*            if (Input.GetTouch(0).phase == TouchPhase.Moved && move)        //触屏            {                Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;                transform.Translate(touchDeltaPosition.x * Time.deltaTime * speed /3, touchDeltaPosition.y * Time.deltaTime * speed /3, 0f, Cam.transform);                            }*/            if (Input.touches[0].phase == TouchPhase.Moved)      //触屏移动物体旋转            {                if (Input.touchCount > 1)                {                    return;                }                float x = Input.touches[0].deltaPosition.x / 3;                float y = Input.touches[0].deltaPosition.y / 3; 
//我这里尝试用float y = Input.GetAxis("Mouse Y");也可以使用,但是有时候会出现放大完毕后,突然旋转某个角度,下面附上大概原因的链接,但是改为这种,感觉有时候也会,但是概率小了很多。                transform.RotateAround(Vector3.up, Time.deltaTime * x);                transform.RotateAround(transform.right, -Time.deltaTime * y);                return;            }        }        else if (Input.touchCount >= 2)        {            Touch newTouch1 = Input.GetTouch(0);            Touch newTouch2 = Input.GetTouch(1);            if (newTouch2.phase == TouchPhase.Began)            {                oldTouch1 = newTouch1;                oldTouch2 = newTouch2;                return;            }            float oldDistance = Vector2.Distance(oldTouch1.position, oldTouch2.position);            float newDistance = Vector2.Distance(newTouch1.position, newTouch2.position);            float offset = newDistance - oldDistance;            float scaleFactor = offset / 10f;            float Camview = Cam.GetComponent<Camera>().fieldOfView - scaleFactor;            if (Camview >= MixCameraView && Camview <= MaxCameraView)            {                Cam.GetComponent<Camera>().fieldOfView = Camview;            }            oldTouch1 = newTouch1;            oldTouch2 = newTouch2;            return;        }
//大致原因链接:http://blog.csdn.net/poda_/article/details/51334051

0 0
原创粉丝点击