Exemplo n.º 1
0
    public void OnDrag(PointerEventData eventData)
    {
        if (Interactable)
        {
            transform.position = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, zDistanceToCamera));

            List <RaycastResult> raycastResults = new List <RaycastResult>();
            PointerEventData     pointerData    = new PointerEventData(EventSystem.current);
            pointerData.position = Input.mousePosition;
            EventSystem.current.RaycastAll(pointerData, raycastResults);

            CardBoardPartView hitArea = null;
            foreach (RaycastResult raycastItem in raycastResults)
            {
                hitArea = raycastItem.gameObject.GetComponent <CardBoardPartView>();
                if (hitArea != null)
                {
                    break;
                }
            }

            if (currentAreaSelected != hitArea)
            {
                if (currentAreaSelected != null)
                {
                    currentAreaSelected.OnPointerExit(eventData);
                }

                currentAreaSelected = hitArea;

                if (currentAreaSelected != null)
                {
                    currentAreaSelected.OnPointerEnter(eventData);
                }
            }
        }
    }