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); } } }
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); } } } // } // } }