Hi everyone,
here is what I am trying to accomplish:
- I have two sliders, one horizontal, one vertical.
- Initially only the horizontal slider is active and the vertical one is inactive.
- When the user drags the slider handle of the horizontal one and lingers over the same slider value for a certain time, I want deactivate the horizontal slider and activate the vertical one, so that the user can continue dragging the handle of the vertical slider without having to release the mouse button (or lift the finger off the touch screen).
This is what I tried so far:
PointerEventData pointer = new PointerEventData (EventSystem.current);
ExecuteEvents.Execute (horizontalSlider.gameObject, pointer, ExecuteEvents.pointerUpHandler);
ExecuteEvents.Execute (verticalSlider.gameObject, pointer, ExecuteEvents.pointerDownHandler);
However, the horizontal slider keeps receiving the press and drag events until I physically release the mouse button. I also tried setting the pointerPress and pointerDrag gameobject in the PointerEventData manually like this
PointerEventData pointer = new PointerEventData (EventSystem.current);
ExecuteEvents.Execute (horizontalSlider.gameObject, pointer, ExecuteEvents.pointerUpHandler);
pointer.pointerPress = verticalSlider.gameObject;
pointer.pointerDrag = verticalSlider.gameObject;
ExecuteEvents.Execute (sliderInvisible.gameObject, pointer, ExecuteEvents.pointerDownHandler);
This unfortunately didn’t do the trick either :-/
Any help is greatly appreciated