public static void StartHoldGesture(IHoldGesture receiver) { HoldGestureObserver instance = HoldGestureObserver.Instance; instance.mReceiver = receiver; instance.mPressTime = Time.get_unscaledTime(); instance.mPressStart = Vector2.op_Implicit(Input.get_mousePosition()); instance.mOldPosition = instance.mPressStart; instance.mTriggered = false; instance.mDragDist = 0.0f; }
private void Update() { if (this.mReceiver == null) { return; } if (this.mReceiver is Object && Object.op_Equality(this.mReceiver as Object, (Object)null)) { this.mReceiver = (IHoldGesture)null; } else { if (!this.mTriggered) { Vector2 vector2_1 = Vector2.op_Implicit(Input.get_mousePosition()); HoldGestureObserver holdGestureObserver = this; double mDragDist = (double)holdGestureObserver.mDragDist; Vector2 vector2_2 = Vector2.op_Subtraction(vector2_1, this.mOldPosition); // ISSUE: explicit reference operation double magnitude = (double)((Vector2)@vector2_2).get_magnitude(); holdGestureObserver.mDragDist = (float)(mDragDist + magnitude); this.mOldPosition = vector2_1; if (Input.GetMouseButton(0) && (double)this.mDragDist <= 10.0 && (double)Time.get_unscaledTime() - (double)this.mPressTime >= 0.5) { this.mTriggered = true; this.mReceiver.OnPointerHoldStart(); } } if (Input.GetMouseButton(0)) { return; } this.mReceiver.OnPointerHoldEnd(); this.mReceiver = (IHoldGesture)null; } }