Exemplo n.º 1
0
        public void OnDrag(PointerEventData eventData)
        {
            position = eventData.position;
            List <IDragReceiver> dragReceivers;
            bool recordExists = dragReceiversByPointer.TryGetValue(eventData.pointerId, out dragReceivers);

            if (recordExists)
            {
                IDragReceiver dragReceiver = GetCloserObject(dragReceivers);
                if (dragReceiver != null)
                {
                    dragReceiver?.OnDrag(InputController.Instance.ScreenToWorldPoint(eventData.position));
                }
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// Obtener el receptor más cercano
 /// </summary>
 /// <param name="dragReceivers"></param>
 /// <returns></returns>
 public IDragReceiver GetCloserObject(List <IDragReceiver> dragReceivers)
 {
     if (dragReceivers.Count > 0)
     {
         IDragReceiver closer         = dragReceivers[0];
         float         closerDistance = float.MaxValue;
         if (closer != null)
         {
             GameObject gameObject = closer.GetGameObject();
             if (gameObject)
             {
                 closerDistance = gameObject.transform.position.z - InputController.Instance.mainCamera.transform.position.z;
             }
             else
             {
                 closer = null;
             }
         }
         for (int i = 1; i < dragReceivers.Count; i++)
         {
             float distance = float.MaxValue;
             if (dragReceivers[i] != null)
             {
                 GameObject gameObject = dragReceivers[i].GetGameObject();
                 if (gameObject)
                 {
                     distance = gameObject.transform.position.z - InputController.Instance.mainCamera.transform.position.z;
                 }
             }
             if (distance < closerDistance)
             {
                 closerDistance = distance;
                 closer         = dragReceivers[i];
             }
         }
         return(closer);
     }
     return(null);
 }
Exemplo n.º 3
0
 public void Register(IDragReceiver receiver)
 {
     DragReceivers.Add(receiver);
 }