// 拖曳完成回调aa protected void OnDragFinishNotify() { if (onDragFinished != null) { onDragFinished(this); } sdDragPanel kDragPanel = this.gameObject.transform.parent.GetComponent <sdDragPanel>(); kDragPanel.onDragFinished -= new sdDragPanel.OnDragFinished(OnDragFinishNotify); }
// 移动到当前图标并回调aa public void Select() { sdDragPanel kDragPanel = this.gameObject.transform.parent.GetComponent <sdDragPanel>(); if (kDragPanel == null) { return; } kDragPanel.onDragFinished += new sdDragPanel.OnDragFinished(this.OnDragFinishNotify); kDragPanel.SetMove(this.transform.localPosition.x); }
// 处理按下与松开消息aa void OnPress(bool isPressed) { if (!isPressed) { if (mIsDragging) { DragPanelIcon kNearIcon = null; DragPanelIcon[] kIconList = this.transform.parent.GetComponentsInChildren <DragPanelIcon>(); float fMinDistance = 1000.0f; Vector4 kRange = this.transform.parent.GetComponent <UIPanel>().clipRange; foreach (DragPanelIcon kIconItem in kIconList) { float kPosition = kIconItem.gameObject.transform.localPosition.x; float fDelta = Mathf.Abs(kPosition - kRange.x); if (fDelta < fMinDistance) { fMinDistance = fDelta; kNearIcon = kIconItem; } } if (kNearIcon != null) { sdDragPanel kDragPanel = this.gameObject.transform.parent.GetComponent <sdDragPanel>(); kDragPanel.onDragFinished += new sdDragPanel.OnDragFinished(kNearIcon.OnDragFinishNotify); //< 注册回调aa kDragPanel.SetMove(kNearIcon.transform.localPosition.x); //< 要求面板移动到指定位置aa } mIsDragging = false; } else { if (this.gameObject.transform.localPosition.x == this.transform.parent.GetComponent <UIPanel>().clipRange.x) { if (onDragFinished != null) //< 已经在指定位置则立即回调aa { onDragFinished(this); } } else { sdDragPanel kDragPanel = this.gameObject.transform.parent.GetComponent <sdDragPanel>(); kDragPanel.onDragFinished += new sdDragPanel.OnDragFinished(this.OnDragFinishNotify); //< 注册回调aa kDragPanel.SetMove(this.gameObject.transform.localPosition.x); //< 要求面板移动到指定位置aa } } } }