public override void OnDrag(PointerEventData eventData) { _inputVector = (eventData.position - _handleAnchorPos).normalized; Handle.anchoredPosition = eventData.position - _handleAnchorPos; if (_timer > DoubleTapTreshold) { OnHolding?.Invoke(_inputVector, _timer); } }
public override void OnDrag(PointerEventData eventData) { Vector2 direction = eventData.position - _position; _inputVector = (direction.magnitude > Background.sizeDelta.x / 2f) ? direction.normalized : direction / (Background.sizeDelta.x / 2f); Handle.anchoredPosition = (_inputVector * Background.sizeDelta.x / 2f) * HandleLimit; if (_timer > DoubleTapTreshold) { OnHolding?.Invoke(_inputVector, _timer); } }
private void Update() { if (_timer > DoubleTapTreshold) { OnTick?.Invoke(_timer); if (!_isOnHoldingPushed) { OnHolding?.Invoke(_inputVector, _timer); _isOnHoldingPushed = true; // Debug.LogWarning("Drag PUSHED"); } } }
private void Holding(float deltaTime) { _holdingPreTime += Time.deltaTime; bool isValidHold = _holdingPreTime > _config.HoldMinDetectTime; if (!_isHolding && isValidHold) { _isHolding = true; OnStartHolding?.Invoke(); } if (_isHolding) { OnHolding?.Invoke(deltaTime); } }