This one's been in the cooker for quite a long time! Before upgrading, make sure you read the upgrade notes carefully (@ end of the post)!!Release NotesHIGHLIGHTS
- Major bug fixes and improvements (runtime exceptions, multi-tap recognition, memory leaks)
- New system to make gestures independent of the different screen pixel densitities (e.g. retina vs non-retina displays)
- New "pivot" twist gesture mode (rotate second finger around the first one)
- Added proper support for Unity 4.x (cleaned up deprecated functions)
- Added support for interacting with 2D sprites via the new Physics2D API (Unity 4.3)
- Added support for Windows 8 phone and Blackberry platformsNEW
- The distance settings on the various gesture recognizers can now be specified in pixels, inches, or centimeters (default). By configuring your gesture settings in centimeters or inches, you can ensure it will behave the same on devices using screens with different pixel densities (DPI).
- Added several extension methods to the float
types to help with converting distances from one type of unit to another (see documentation)
- Added a new "Pivot" mode to the Twist gesture recognizer, allowing the user to rotate a single finger around another one that remains static
- Added pivot emulation using the left Alt key + mouse
- Added new TwistPivot sample scene to demonstrate the new twist gesture "pivot" method
- ScreenRaycaster can now use Physics2D.Raycast() to pick sprite objects equipped with 2D colliders (Unity 4.3 & orthographic cameras only).
- The Win8 Phone and BlackBerry platforms will now automatically use the TouchInputProvider instead of the MouseInputProvider
- TBOrbit: added support for world-collisions via the "Collision Layer Mask" property
- TBOrbit: added flag to only allow view rotation when drag gesture started on target object
- TBDragToMove: added "Drag From Object Center" option
- TBPinchZoom: added zoom smoothing
- Added FingerDebug component that you can drop in any scene to easily visualize the active touchesFIXES
- Fixed multi-tap not registering properly on subsequent taps performed beyond the tolerance radius
- Fixed index out of bound error in FingerEventDetectors caused by changing to an input provider using more MaxFingers (e.g. when using UnityRemote)
- Fixed compilation problem caused by non-generic & generic classes sharing the same name (GestureRecognizer and GestureRecognizer<T>)
- Fixed PointCloudGestureTemplate error due to uninitialized positions and strokeIds lists
- Fixed glitch with initial pinch move delta value
- Fixed Finger.distFromStart not being reset properly
- Fixed GestureRecognizerDelegate sill being used when it's disabled
- Fixed ScreenRaycaster trying to raycast from disabled/inactive cameras
- Fixed bag logic when comparing square pixel distances after conversion from another distance unit
- Playmaker: Fixed swipe velocity and move vector variables not being set properly
- Playmaker: Fixed long press storeElapsedTime variable value not being set properlyIMPROVEMENTS
- Removed the remaining memory allocations caused by foreach() loops and delegates in several scripts. FG is now allocating 0 memory per frame again. No more garbage collection spikes for you!
- FG will attempt to find a good DPI for unknown/unsupported devices (e.g. iPad Mini 2)
- Removed warning in editor when inspector tries to set the RequiredFingerCount on PinchRecognizer & TwistRecognizer
- Added some information/hint bubbles in gesture inspectors
- Added checks and user-friendly error messages when the FingerGestures singleton is not present in the scene
- Prevented MouseInputProvider from moving the twist/pinch pivot point after the start phaseCHANGES- The distance settings on gesture recognizers are now specified in centimeters by default.- The default distance settings of each gesture recognizer and sample have been updated to reflect this.
- Updated most samples and toolbox scripts to be screen DPI-independent (they now use centimeters instead of raw pixel values for distances)
- Disabled support for multi-finger multi-tap gestures (can now only perform a single multi-finger multi-tap gesture at once)
- The FingerCluster logic is now exclusively used for multi-finger gestures (non-exclusive single-finger gestures now use the per-finger update path)
- PinchRecognizer: removed DeltaScale property
- Prevented MouseInputProvider from moving the twist/pinch pivot point after the gesture has started
- Removed the whole retina display / densitity independent pixel API from 3.1 beta.- Changed Gesture.Hit property (RaycastHit) to Gesture.Raycast (ScreenRaycastData)
- Changed FingerEvent.Hit (RaycastHit) to FingerEvent.Raycast (ScreenRaycastData)
- FG seems to cause issues with Windows Store platform. This is being investigated.
- There is a complication error when running pre 4.3 versions of Unity 4.X due to missing 2D API. A fix is available here
There is a critical change introduced in this version that you must be aware of: the various distance properties on the gesture recognizers are now expressed in centimeters by default
. After upgrading, make sure to go through your existing gestures and either reset their values to the new default, or update all the fields that show up in teal (distance unit fields).
This is to ensure that, for instance, you don't end up with a DragRecognizer using a MoveTolerance of 25 centimeters
instead of 25 pixels
. To fix this, you can either change the distance unit back to Pixels using the dropdown menu to the right of the value, or convert the value to an equivalent one in centimeters. Alternatively, you can also reset the component to its default settings by clicking the "Reset" option in the component's context menu (right click).
As usual, feel free to leave your feedback/comments in this thread!