Input 中的Touch类 小结

本文转自博文http://blog.163.com/mei_xiajinyi/blog/static/24262507820154193418494,感谢博主分享

Input.touchCount 触摸随之增长              一秒50次增量

Input.GetTouch(0).phase == TouchPhase.Moved
手指滑动中最后一针滑动的状态是运动的

TouchPhase  触摸的几个状态
Began                                         手指已触摸屏幕
Moved                                        手指在屏幕上移动
        Stationary     手指触摸屏幕,但是并没有移动
        Ended              手指从屏幕上移动,这是一个触摸的最后状态
        Canceled     系统取消跟踪触摸,如用户把屏幕放到他的脸上或超过五个接触同时发生。这是一个触摸的最后状态                     

Touch.deltaPosition 增量位置 (Input.GetTouch(0).deltaPosition)最后一帧滑动的值,只返回xy 轴坐标 也可用vector3(z轴为0)所以一般用vector2接受

1.Input.touchCount
   void Update()
    {
        if(Input.touchCount > 0)
        {
            Debug.Log(Input.touchCount);
        }
    }

touch 时间,只能在模拟器或者移动端运行,大约一秒中touch不放  50次左右
touchCount 是触摸帧的数量

2.Input.touches 触摸数组

    int fing = 0;
    void Update()
    {
        foreach (Touch a  in Input.touches)
        {
            if(a.phase != TouchPhase.Ended && a.phase != TouchPhase.Canceled)
            {
                fing ++;
            }
        }
    }

3.让cube 随着touch 移动代码
    int count = 0;
    Vector3 touchposition = Vector3.zero;
    public GameObject cube;
    void Update()
    {
        if (Input.touchCount > 0)
        {
            count += Input.touchCount;
            Debug.Log(count);
        }
        if(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved)
        {
           touchposition = Input.GetTouch(0).deltaPosition;                
           cube.transform.Translate(touchposition.x * 0.01f,touchposition.y * 0.01f,0f);
        }
    }

你可能感兴趣的:(Unity)