public void BackPosition(DragBackEffect effect) { DragBackEffect cache = backEffect; backEffect = effect; BackPosition(); backEffect = cache; }
private void BackOnTopCallback() { _backEffect = UGUIDrag.DragBackEffect.Immediately; BackPositionAction(); _backEffect = _markDragBackEffect; this.enabled = true; _backDuring = _markDragBackDuring; OnTweenOver(); }
public void BackPosition(UGUIDrag.DragBackEffect backEffect = UGUIDrag.DragBackEffect.None) { if (_isBackKeepTop) { BackOnTop(backEffect); } else { DragBackEffect mark = _backEffect; _backEffect = backEffect; BackPositionAction(); _backEffect = mark; } }
public void OnBeginDrag(PointerEventData eventData) { if (!this.enabled || _isDown) { return; } if (null != DragValidCheckEvent) { if (!DragValidCheckEvent(eventData)) { _canDrag = false; return; } } if (null != OnPrevBeginDragAction) { OnPrevBeginDragAction.Invoke(this, eventData); } _dragMoveDamp = 0.3f; _isDown = true; _canDrag = true; _tool.DOKill(); _isDragging = true; GetComponent <Graphic>().raycastTarget = false; _toolCachePosition = _tool.localPosition; _toolCacheScale = _tool.localScale; _toolCacheRotation = _tool.localEulerAngles; _toolCacheIndex = _tool.GetSiblingIndex(); if (Math.Abs(_dragChangeScale) > float.Epsilon) { _tool.DOScale(_toolCacheScale * _dragChangeScale, 0.4f); } if (Math.Abs(_dragChangeRotate) > float.Epsilon) { _tool.DOLocalRotate(_toolCacheRotation + new Vector3(0f, 0f, _dragChangeRotate), 0.4f, RotateMode.Fast); } _tool.position += new Vector3(0, 0, _dragOffsetZ); _worldPos = _tool.position; Vector3 touchDownMousePos; RectTransformUtility.ScreenPointToWorldPointInRectangle(_tool, eventData.position, _raycastCamera, out touchDownMousePos); _touchDownTargetOffset = _worldPos - touchDownMousePos; if (_isDragOriginPoint) { _worldPos += _touchDownTargetOffset * 0.01f; } _prevParent = _tool.parent; if (_draggingParent) { _tool.SetParent(_draggingParent); } if (true == _isBackKeepTop && false == _hasStartBackKeepTop) { _hasStartBackKeepTop = true; _backEffect = UGUIDrag.DragBackEffect.Keep; _markDragBackPos = _tool.position; _markDragBackScale = _tool.localScale; } SetToolState(true); SetBoxState(true); if (null != _tipBeforeDrag) { Destroy(_tipBeforeDrag); } if (null != _tipDragging) { _tipDragging.SetActive(true); } PlaySoundStartDrag(); if (_dragEffectType == DRAG_EFFECT_TYPE.ON_DRAG) { SetDragEffectPlay(true); } if (null != OnBeginDragAction) { OnBeginDragAction.Invoke(this, eventData); } }