Пример #1
0
    void HandleInput()
    {
        if (Input.touchCount == 1)
        {
            Touch touch = Input.GetTouch(0);
            touchPosition = (Vector2)Camera.main.ScreenToWorldPoint(
                touch.position
                );

            RaycastHit2D raycastHit = Physics2D.Raycast(
                touchPosition, Vector3.forward, Mathf.Infinity
                );

            if (elementClicked != null)
            {
                switch (touch.phase)
                {
                case TouchPhase.Moved:
                    elementClicked.TouchDrag();
                    break;

                case TouchPhase.Ended:
                    elementClicked.TouchUp();
                    elementClicked = null;
                    break;
                }
            }
            else if (touch.phase == TouchPhase.Began)
            {
                if (raycastHit)
                {
                    elementClicked = raycastHit.collider
                                     .GetComponent <ITouchable>();
                }
                if (elementClicked != null)
                {
                    elementClicked.TouchDown();
                }
            }
        }
        else
        {
            ClearElementClicked();
        }
    }