Pinchable ScrollRect allows users to zoom in and out on the ScrollRect with both touches pinching input or mouse scroll input.
- Customizable pinching behaviour with inherited Unity ScrollRect behaviour.
- Overridden OnScroll behaviour for mouse scroll to perform zooming behaviour.
- Customized pinching gesture to perform the same zooming behaviour as mouse scroll input for touches.
- Transformed standard Unity Event IPointerUp & IPointerDown interface into IPinch interface for further customization of touch behaviour
- Use it same as the way you use the Unity ScrollRect component.
- Add a UI/ScrollView from the GameObject Menu
- Select the ScrollRect added, click on the context dropdown menu
- Select "Replace as Pinchable"
- PinchInputDetector component must have a higher execution order than PinchableScrollRect component or any IPinchHandler component in order to consume the original OnDrag pointer event beforehand.
- Without PinchInputDetector, the ScrollRect can still perform zooming with mouse scroll input but not touch input.
- The absolute minimum scale of the Content of the ScrollRect is 1. A customizable lower bound and upper bound of the scale can be set on inspector.
- Any third touches detected after pinching will be ignore, even after both pinching touches are lifted.
- Editor script is needed in order to serialize the extra fields added to the PinchableScrollRect component.
This plugin is licensed under the MIT License - see the LICENSE file for details.