Ejemplo n.º 1
0
    public void OnPointerUp(PointerEventData pointerEventData)
    {
        float endClickTime = Time.time;
        float duration     = endClickTime - startClickTime;

        if (clickState)//如果松手时是clickstate,说明是点击,并分析是否进行旋转
        {
            clickState = false;

            if (puzzleItemData.NotSettleFlag)
            {
                if (draggedState)
                {
                    return;
                }
                //FINISH:在没放置时,点击一下旋转拼图
                //TODO:旋转动画
                //Debug.Log("just click");
                RotatePuzzleOnce();
            }
        }
        else//如果松手时不是clickstate,就判断是否是dragstate,如果是dragstate就调用dragcontroller的onEndDrag
        {
            if (dragState)
            {
                dragController.OnEndDrag(pointerEventData, this, generalPanelUI);
            }
        }
    }
Ejemplo n.º 2
0
    private void Update()
    {
        // if (!splitController.splitInProgress && !itemActionsUI.dropInProgress)
        // {
        //  if (itemActionsUI.menuActive)
        //  {
        //      if (Input.GetMouseButtonDown(0))
        //      {
        //          if (!ItemActionsHit())
        //          {
        //              itemActionsUI.Close();
        //              DeselectInventorySlot();
        //          }
        //      }
        //
        //      if (Input.GetMouseButtonDown(1))
        //      {
        //          if (!ItemActionsHit())
        //          {
        //              var slotHit = GetSlotHit();
        //              if (slotHit && slotHit.itemInside)
        //              {
        //                  if (slotHit != selectedInventorySlot)
        //                  {
        //                      SelectInventorySlot(slotHit);
        //                      itemActionsUI.OpenActionsFor(slotHit);
        //                  }
        //              }
        //              else
        //              {
        //                  itemActionsUI.Close();
        //                  DeselectInventorySlot();
        //              }
        //          }
        //      }
        //  }
        //  else
        //  {
        if (Input.GetMouseButtonDown(0))
        {
            var slotHit = GetSlotHit();
            if (slotHit && slotHit.itemInside)
            {
                SelectInventorySlot(slotHit);
                dragTime = Time.time + TIME_HOLD_TO_DRAG;
            }
            else
            {
                dragTime = float.MaxValue;
            }
        }
        else
        {
            if (Input.GetMouseButton(0))
            {
                if (Time.time >= dragTime)
                {
                    if (dragController.draggedInventorySlot)
                    {
                        dragController.OnDrag();
                    }
                    else
                    {
                        // itemActionsUI.Close();
                        dragController.BeginDrag(selectedInventorySlot);
                    }
                }
            }
            else if (Input.GetMouseButtonUp(0))
            {
                if (dragController.draggedInventorySlot)
                {
                    var newSlot = dragController.OnEndDrag();
                    if (newSlot)
                    {
                        SelectInventorySlot(newSlot);
                    }
                }
            }
        }

        if (Input.GetMouseButtonDown(1))
        {
            if (dragController.draggedInventorySlot)
            {
                dragController.StopDrag();
                dragTime = float.MaxValue;
            }
            else
            {
                var slotHit = GetSlotHit();
                if (slotHit && slotHit.itemInside)
                {
                    SelectInventorySlot(slotHit);
                    // itemActionsUI.OpenActionsFor(slotHit);
                }
            }
        }

        // }
        // }
    }