Beispiel #1
0
    public void OnPointerUp(PointerEventData data)
    {
        RaycastHit hit;

        if (cancelArea != null && cancelArea.CheckScreenPoint(data))
        {
            cancelHandler();
        }
        else
        {
            if (CameraView.RaycastScreen(data.position, out hit, mask))
            {
                //NavMeshHit nmHit;
                //if (NavMesh.SamplePosition (hit.point, out nmHit, 0.1f, NavMesh.AllAreas))
                v3upHandler(hit.point);
                //else
                //	v3upHandler (MyExtensions.v3Inf);
            }
        }
        if (cancelArea != null)
        {
            cancelArea.gameObject.SetActive(false);
        }
        Done();
    }
Beispiel #2
0
    /*public void OnPointerClick(PointerEventData data){
     *      OnPointerDown (data);
     *      OnPointerUp (data);
     * }*/

    public void OnDrag(PointerEventData data)
    {
        RaycastHit hit;

        if (CameraView.RaycastScreen(data.position, out hit, mask))
        {
            //NavMeshHit nmHit;
            //if (NavMesh.SamplePosition (hit.point, out nmHit, 0.1f, NavMesh.AllAreas))
            v3positionHandler(hit.point);
            //else
            //	v3positionHandler (MyExtensions.v3Inf);
        }
    }
Beispiel #3
0
 public void OnPointerDown(PointerEventData data)
 {
     if (Input.touchCount <= 1)
     {
         twoTap    = false;
         prevDist  = 0;
         hitCtrl   = null;
         hitCol    = null;
         hitPos    = Vector3.zero;
         holdTime  = 0;
         dragDelta = 0;
         clickPos  = data.position;
         RaycastHit hit;
         if (CameraView.RaycastScreen(data.position, out hit))
         {
             hitCol  = hit.collider;
             hitCtrl = hitCol.GetComponent <MyController> ();
             hitPos  = hit.point;
             hitDist = hit.distance;
             if (hitCtrl == null)
             {
                 hitCtrl = CameraView.GetClosestControllerToPoint(hitPos, 0.06f * hitDist);
             }
             if (hitCtrl == null)
             {
                 CameraView.ShowTapNeutral(hitPos);
             }
             else
             {
                 if (hitCtrl.isLocalPlayer)
                 {
                     CameraView.ShowTapAlly(hitCtrl.transform.position);
                 }
                 else
                 {
                     CameraView.ShowTapEnemy(hitCtrl.transform.position);
                 }
             }
         }
         else if (CameraView.SphereCastScreen(data.position, out hit))
         {
             hitCol  = hit.collider;
             hitCtrl = hitCol.GetComponent <MyController> ();
             hitPos  = hit.point;
             hitDist = hit.distance;
             if (hitCtrl == null)
             {
                 hitCtrl = CameraView.GetClosestControllerToPoint(hitPos, 0.06f * hitDist);
             }
             if (hitCtrl == null)
             {
                 CameraView.ShowTapNeutral(hitPos);
             }
             else
             {
                 if (hitCtrl.isLocalPlayer)
                 {
                     CameraView.ShowTapAlly(hitCtrl.transform.position);
                 }
                 else
                 {
                     CameraView.ShowTapEnemy(hitCtrl.transform.position);
                 }
             }
         }
     }
     else
     {
         RaycastHit hit;
         if (CameraView.RaycastScreen(data.position, out hit))
         {
             CameraView.ShowTapNeutral(hit.point);
         }
         else if (CameraView.SphereCastScreen(data.position, out hit))
         {
             CameraView.ShowTapNeutral(hit.point);
         }
         twoTap   = true;
         holdTime = -1;
         Vector2 a = Input.GetTouch(0).position;
         Vector2 b = Input.GetTouch(1).position;
         prevDist = new Vector2((a.x - b.x) * 12 / Screen.width, (a.y - b.y) * 12 / Screen.height).magnitude;
     }
 }
Beispiel #4
0
    /*public void OnPointerClick(PointerEventData data){
     *      OnPointerDown (data);
     *      OnPointerUp (data);
     *
     * }*/

    public void OnPointerDown(PointerEventData data)
    {
        touchCount++;
        touchIds.Add(data.pointerId);
        if (touchCount <= 1)
        {
            prevDist  = 0;
            hitCtrl   = null;
            hitCol    = null;
            hitBut    = null;
            hitPos    = Vector3.zero;
            holdTime  = 0;
            dragDelta = 0;
            clickPos  = data.position;
            RaycastHit hit;

            if (CameraView.RaycastWorldCanvas(data.position, out hit))
            {
                Button b = hit.collider.GetComponent <Button> ();
                b.Select();
                //var pointer = new PointerEventData(EventSystem.current);

                //ExecuteEvents.Execute(b.gameObject, pointer, ExecuteEvents.pointerEnterHandler);
                //ExecuteEvents.Execute(b.gameObject, pointer, ExecuteEvents.pointerDownHandler);
                b.OnPointerEnter(data);
                b.OnPointerDown(data);
                hitBut = b;
                hitCol = hit.collider;
            }
            else if (CameraView.RaycastScreen(data.position, out hit))
            {
                hitCol  = hit.collider;
                hitCtrl = hitCol.GetComponent <MyController> ();
                hitPos  = hit.point;
                hitDist = hit.distance;
                if (hitCtrl == null)
                {
                    hitCtrl = CameraView.GetClosestControllerToPoint(hitPos, 0.06f * hitDist);
                }
                if (hitCtrl == null)
                {
                    CameraView.ShowTapNeutral(hitPos);
                }
                else
                {
                    if (hitCtrl.team == 0)
                    {
                        CameraView.ShowTapAlly(hitCtrl.transform.position);
                    }
                    else
                    {
                        CameraView.ShowTapEnemy(hitCtrl.transform.position);
                    }
                }
            }
            else if (CameraView.SphereCastScreen(data.position, out hit))
            {
                hitCol  = hit.collider;
                hitCtrl = hitCol.GetComponent <MyController> ();
                hitPos  = hit.point;
                hitDist = hit.distance;
                if (hitCtrl == null)
                {
                    hitCtrl = CameraView.GetClosestControllerToPoint(hitPos, 0.06f * hitDist);
                }
                if (hitCtrl == null)
                {
                    CameraView.ShowTapNeutral(hitPos);
                }
                else
                {
                    if (hitCtrl.team == 0)
                    {
                        CameraView.ShowTapAlly(hitCtrl.transform.position);
                    }
                    else
                    {
                        CameraView.ShowTapEnemy(hitCtrl.transform.position);
                    }
                }
            }
        }
        else
        {
            RaycastHit hit;
            if (CameraView.RaycastScreen(data.position, out hit))
            {
                CameraView.ShowTapNeutral(hit.point);
            }
            else if (CameraView.SphereCastScreen(data.position, out hit))
            {
                CameraView.ShowTapNeutral(hit.point);
            }
            holdTime = -1;
            Vector2 a = Input.GetTouch(0).position;
            Vector2 b = Input.GetTouch(1).position;
            prevDist = new Vector2((a.x - b.x) * 12 / Screen.width, (a.y - b.y) * 12 / Screen.height).magnitude;
        }
    }