Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - William Ravaine

Pages: [1] 2 3
1
Support / Away until April 1st 2014
« on: 26 March, 2014, 11:44:55 AM »
Just a quick note to let you guys know I'll be away for a few days on a trip and will be back on April 1st. I will have limited internet access so I doubt I'll be able to provide support during that period.

See you in a few days!
William

3
General Discussions / MOVED: How to force OnDragEnd
« on: 10 December, 2013, 06:35:33 PM »

5
General Discussions / MOVED: Windows store problem
« on: 10 December, 2013, 06:35:06 PM »

6
Releases / FingerGestures v3.1
« on: 04 December, 2013, 12:07:46 AM »
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 Notes

HIGHLIGHTS
- 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 platforms

NEW
- 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 and Vector2 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 touches

FIXES
- 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 properly

IMPROVEMENTS
- 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 phase

CHANGES
- 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)


Known Issues
- 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.

Upgrade Notes

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!

7
General Discussions / MOVED: Rotation -- Please Help
« on: 09 August, 2013, 07:16:24 PM »

8
Beta / FingerGestures v3.1.Beta1
« on: 02 June, 2013, 06:05:46 PM »
Hi guys & gals,
This is mostly a bug fix release, addressing the most pressing bugs and issues introduced in v3.0.

CHANGES
- Reworked the retina/high pixel density screen feature and updated some gestures that were not using it. See notes below on density-independent pixel distances.
- Renamed FingerGestures.GetAdjustedPixelDistance() to FingerGestures.ToDensityIndependentPixel()
- Replaced FingerGestures.RetinaPixelScale property by FingerGestures.ReferencePixelsPerInch
- PinchRecognizer: removed DeltaScale property
- Prevented MouseInputProvider from moving the twist/pinch pivot point after the gesture has started

FIXES
- 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
- Playmaker: Fixed swipe velocity and move vector variables not being set properly
- Playmaker: Fixed long press storeElapsedTime variable value not being set properly
- Fixed GestureRecognizerDelegate sill being used when it's disabled

Density Independent Pixel Distances
In this version, I've reworked the "retina display support" feature shipped in 3.0 as it was not usable on all types of devices. The current implementation should now automatically determine the pixel scale factor to apply to pixel distances based on the screen's DPI (device per inch) metric exposed by Unity via Screen.dpi. The goal is to allow you to configure your gesture's distances once (e.g. move threshold, swipe speeds, etc) and have them work pretty much the same on devices with widely varying pixel densities, such as the iPhone4S/5 retina display. The "reference pixels per inch" property on the FingerGestures singleton is used to determine the reference pixel density used to configure the gesture recognizers. A value of 160 is equivalent to an iPad2 / iPhone4 screen pixel density.

I haven't been able to test this new feature thoroughly yet on many devices, so that's where I could really use your help. You can also turn off the feature by disabling the "Use Device Independent Pixel Unit" property on your FingerGestures prefab/singleton.

9
Releases / FingerGestures v3.0
« on: 12 March, 2013, 11:16:34 AM »
The new shinny and improved FingerGestures has finally arrived!
Existing users: please read the Upgrade Instructions below before installing!

Main Changes
- Major rewrite aimed at simplifying the setup and use of FingerGestures in your projects
- New fully component-driven architecture based around GestureRecognizers and FingerEventDetectors
- Gesture and finger input events can now also be fired as with Unity's SendMessage approach (this can be disabled). These events can also be forwarded to the objects being interacted with.
- Custom Gesture Recognizer with built-in editor (see PointCloudRecognizer)
- Added support for simultaneous multi-finger gesture recognition via the FingerClusterManager component (does not support pinch and twist yet though).
- Built-in support for object-picking via the ScreenRaycaster component (supports thick raycasts and multiple cameras)
- Improved overall gestures responsiveness
- Added support for PlayMaker
- Option to adjust pixel distances to account for retina displays on iOS
- Automatic detection of Unity Remote at runtime
- Twist gesture emulation on desktop using CTRL + Mousehweel (by default)
- Every GestureRecognizer now has its own custom inspector with help tooltips and clean properties layout
- Added Finger.ExtendedProperties map for per-finger user-provided properties
- Updated the swipe gesture to support diagonals and expose the swipe motion vector
- Added finger "Hover" event detection for when a finger enters or exit an object (see FingerHoverDetector)
- Toolbox: Added TBPinchToScale and TBTwistToRotate scripts for object-based scaling and rotation
- Toolbox: Added a drag-based first-persona camera controller (TBDragView & TBLookAtTap - think "google street view")
- Toolbox: Updated TBDrag to work properly with rigidbodies
- Updated samples

Known Issues
Here are some known issues that will get fixed very soon:
- The TBOrbit sample has some debug code and is missing the sample navigation bar
- It's possible to get an ArgumentOutOfRangeException when using Unity Remote and using FingerEventDetectors
- A Unity issue with using generic type derived from another type of the same name (GestureRecognizer) can cause scene deserialization problems.

Documentation
A new set of docs is available online at http://fingergestures.fatalfrog.com/docs. I'm actively adding to it as we speak, so check back often for more content.
Make sure you to check out the new quickstart tutorial as it will give you a good overview of the new FingerGestures.

Upgrade Instructions
This version is major rewrite of the entire library and it was impossible to maintain backward compatibility with previous versions of FingerGestures.
You will get many errors if you simply overwrite your existing FG installation with this new version.

All of the global static gesture and finger events on the FingerGestures singleton have been removed and you should now be using the various GestureRecognizer and FingerEventDetector components to detect specific gesture and finger input events. Please take a look at the quickstart tutorial to get a better idea of how to use this new version.

To upgrade to this new version of FingerGestures, you should first remove any previous version you have installed in your project by deleting the corresponding root FingerGestures folder, and then import the new version of the package (see: Installation).

10
Beta / FingerGestures v3.0.Beta3
« on: 03 March, 2013, 02:41:30 PM »
Changelog Highlights
- PointCloud-based custom gesture recognition, including a basic editor and sample
- New PlayMaker actions and samples (complete revamp)




Custom Gestures
You can now create and detect custom gestures. The system currently only support unistroke gestures, but support for multistroke will be added in a future version. I want to make sure unistroke is working fine before making it more complex. The matching algorithm is based on a modified version of the $P recognizer.

Quick HowTo:
- Right click anywhere in your project assets view and select "Create > PointCloud Gesture Template" item in the context menu.
- Rename the asset to something meaningful
- Click the template and you should see an "Edit" button in the inspector panel. Clicking that button will show open a new editor window where you can paint the gesture directly. Once you're happy with the shape of your gesture, click the "Apply" button to save your changes.
- Add a PointCloudRecognizer gesture recognizer component to your scene and drag your new pointcloud gesture template to its "Templates List" array property. You can add as many templates as you want there, and the recognizer will try to match the best one at runtime.
- The PointCloudGesture data contains several important properties:
--> a reference to the RecognizedTemplate to tell what gesture from the list has been matched
--> a MatchScore percent and a MatchDistance property that tell you how accurate the match was
- You can also check the PointCloudGestures sample included in the package

The gesture editor is very basic right now, but I add new import options in the next releases. The PointCloudGestureTemplate API also allows you to easily create new templates proceduraly so you can write your own editor extensions for it if you wishes.

I'm planning on spending next week fixing bugs that will popup and documenting all the new changes and features. I thank you in advance for your continued assistance in testing this and reporting any issue you encounter.

11
Beta / FingerGestures v3.0.Beta2
« on: 03 February, 2013, 09:33:29 PM »
After a lot of sweating, tea cups and back pains, here's the new beta version of the upcoming major v3.0 release. It won't be the final beta release though as I've got a few extra WIP features that are not ready for testing yet. This iteration is a big milestone for FG, as it brings with it a complete rework of the library's core architecture, with its fair share of code rewrites.

CHANGES HIGHLIGHTS
- New fully component-driven architecture offering more user-friendliness, control and flexibility:
  - FingerEventDetectors (finger down/move/stationary/hover/up events)
  - GestureRecognizers (drag/longPress/swipe/tap/pinch/twist)
  - ScreenRaycaster component to easily manage picking of scene objects (supports multiple cameras and thick raycasts)
  - Custom inspectors with embedded tooltips explaining what each property does
- Support for unlimited simultaneous multi-finger gestures (except for twist and pinch) with smart finger clustering logic
- Every finger event detector and gesture recognizer can fire events using both regular .NET delegates and/or Unity's SendMessage() method
- Updated samples
- Many bug fixes and gesture responsiveness improvements

There are several additional features currently in the pipe that haven't made it into this release, but will be available shortly in the next beta release:
- PointCloud Gesture Recognition with editor (to recognize hand-drawn gestures)
- TOUI support (for desktop touchscreens)
- Updated PlayMaker support

IMPORTANT
- You must uninstall/delete previous versions of FingerGestures before installing this one, otherwise you will get errors due to some files having moved.
- This version is a rather big departure from the previous ones. It does not maintain backward compatibility, so do not expect to upgrade without some stuff breaking.

Also, a friendly reminder: this is a BETA version and it's meant for testing and feedback by advanced users. It's also not advised to use this version in production environments.

Getting Started
This coming week, I will release several tutorial videos to present the new features and how to use them. In the meanwhile, you can get started on your own with the following steps:
- Extract the main package in a new empty project
- The samples are available in their own sub-package inside the main archive (Plugins\FingerGestures\Samples.package). Extract this one in the same project.
- Take a look at the FingerEventsPart1 and BasicGestures sample scenes, and associated sample script. This will show you the basics on how to use the new system.

Here's a copy/paste of the basic instructions from the readme.txt:

Quote
=======================
Basic Use Instructions
=======================
[Setup]
Add a single FingerGestures component to an object in your scene

[Detecting Standard Gestures]
- Add any of the gesture recognizer scripts from the "Plugins\FingerGestures\Gesture Recognizers" folder to an object in your scene
- To allow the gesture to interact with colliders in the scene, add a "Screen Raycaster" component to it and set it up accordingly
- If the "Use Send Message" property on the gesture recognizer is enabled, it will broadcast an event called "Message Name" to
  the "Message Target" object (current object by default). The gesture recognizer can also optionally send the same message to the scene object
  it's interacting with (GestureRecognizer.Selection).
- Each gesture recognizer also exposes a standard .NET event (delegate-based) that you can subscribe to by code in order to get fastest performance

[Detecting Finger Events]
- Add any of the FingerEventDetector component from the "Plugins\FingerGestures\Finger Event Detectors" folder to an object in your scene
- To allow the detector to interact with colliders in the scene, add a "Screen Raycaster" component to it and set it up accordingly
- The FingerEventDetectors can also fire events either via SendMessage() or standard .net delegate-based events


Questions and feedback are welcome!

12
Support / Away until the 27th of December
« on: 22 December, 2012, 12:38:00 AM »
I'll be away on vacation from December 22nd to December 28th with no internet access, so I won't be able to provide any support during that period. This also means I will not be able to approve membership requests to the FingerGesturer group either, as this is still a manual process at the moment.

You can still post your questions and membership requests on the forum and I will try to get back to you as quickly as possible once I return. In the meanwhile, have an awesome Christmas!


13
Beta / FingerGestures v3.0.Beta0
« on: 29 September, 2012, 05:48:27 PM »
Ahhh, finally, the much touted about 3.0 update! :)

I've made some rather big architectural changes in this one, thus the major version number change. I tried to keep API changes to the bare minimum, but some were unavoidable. Keep in mind this is an early beta build meant for testing purposes, so please do not use this for production yet. It's still missing a few things such as updated PlayMaker support and documentation, but it's mostly feature complete. I have much more planned for the next iterations, but there's enough meat on this one for a proper release.

IMPORTANT
You must uninstall/delete previous versions of FingerGestures before installing this one, otherwise you will get errors due to some files having moved.

CHANGES HIGHLIGHTS
- Major rewrite aimed at streamlining & simplifying the setup and integration of FingerGestures in your projects
- Switched to Unity's SendMessage() approach for gesture event notifications (deprecating .NET events)
- Gesture event data now include a reference to the top-most scene object being interacted with
- Scene objects equipped with a collider can now automatically receive gesture event notifications (via SendMessage)
- Improved overall gestures responsiveness
- Automatic detection of Unity Remote
- Twist gesture emulation on desktop using CTRL + Mousewheel (by default)
- New priority system for events allows an event listener to consume/swallow specific events before they reach the next listeners
- Option to adjust pixel distances to account for retina displays on iOS
- Many minor bug fixes and improvements

GESTURE EVENTS/MESSAGES
Here's a list of the input events generated by FingerGestures and their respective method signatures:

Code: [Select]
    // per-finger input events
    void OnFingerDown( FingerGestures.Events.FingerDown e ) { }
    void OnFingerMove( FingerGestures.Events.FingerMove e ) { }
    void OnFingerStationary( FingerGestures.Events.FingerStationary e ) { }
    void OnFingerEnter( FingerGestures.Events.FingerEnterObject e ) { }
    void OnFingerExit( FingerGestures.Events.FingerExitObject e ) { }
    void OnFingerUp( FingerGestures.Events.FingerUp e ) { }
   
    // per-finger gesture events
    void OnFingerDrag( FingerGestures.Events.Drag e ) { }
    void OnFingerSwipe( FingerGestures.Events.Swipe e ) { }
    void OnFingerTap( FingerGestures.Events.Tap e ) { }
    void OnFingerDoubleTap( FingerGestures.Events.MultiTap e ) { }
    void OnFingerLongPress( FingerGestures.Events.LongPress e ) { }
   
    // global gestures
    void OnDrag( FingerGestures.Events.Drag e ) { }
    void OnSwipe( FingerGestures.Events.Swipe e ) { }
    void OnTap( FingerGestures.Events.Tap e ) { }
    void OnDoubleTap( FingerGestures.Events.MultiTap e ) { }
    void OnLongPress( FingerGestures.Events.LongPress e ) { }
    void OnPinch( FingerGestures.Events.Pinch e ) { }
    void OnTwist( FingerGestures.Events.Twist e ) { }
    void OnTwoFingerDrag( FingerGestures.Events.Drag e ) { }
    void OnTwoFingerSwipe( FingerGestures.Events.Swipe e ) { }
    void OnTwoFingerTap( FingerGestures.Events.Tap e ) { }
    void OnTwoFingerLongPress( FingerGestures.Events.LongPress e ) { }

These events are now directly sent via Unity's SendMessage() to the top-most scene object being interacted with and/or any other scene object equipped with a FingerGesturesListener component. You no longer need to subscribe & unsubscribe to them like in previous versions that were using delegate-based .NET events (these are still supported for backward compatibility, but are now flagged as obsolete and will possibly be deprecated in a future version).

MINI TUTORIAL
Let me walk you through a quick tutorial on how to setup and use this new iteration of FingerGestures.

Scene Setup
1) In a new scene, add a new Sphere object via the GameObject > Create Other > Sphere menu (make sure it has a collider)
2) Drag the Plugins\FingerGestures\Prefabs\FingerGestures prefab into your scene. You should only have one per scene.
3) Take a look at the various settings exposed by the FingerGestures component

Detecting Taps on the Sphere object
Here we'll see how easy it is to detect a tap gesture performed on the sphere. To keep things simple, we'll simply display
1) Create a new script called "MySphereScript" in your langage of choice
2) Add it to the sphere object we created above
3) Edit the script to use the following code:

[C# Version]
Code: [Select]
using UnityEngine;
using System.Collections;

public class MySphereScript : MonoBehaviour
{
    void OnTap( FingerGestures.Events.Tap e )
    {
        Debug.Log( "Tapped " + this.name + " at " + e.Position );
    }
}

[Javascript Version]
Code: [Select]
#pragma strict

function OnTap( e : FingerGestures.Events.Tap )
{
    Debug.Log( "Tapped " + this.name + " at " + e.Position );
}

And that's pretty much all it takes! :) I think that's quite an improvement over previous versions of FingerGestures, and the ease of use of this new approach more than makes up for the slight performance cost of using SendMessage() over the .NET delegate-based events.

The "e" parameter passed to the method holds all the relevant data associated to the event. Via this parameter, you can for instance access the position of the gesture on the screen, the list of fingers that performed the gesture, or the scene object that is being interacted with.

Detecting Taps Globally
What if you want to be notified when a tap happens anywhere on the screen or on any scene object? That's where the new FingerGestureListener script comes in. Simply put a FingerGestureListener component on any object you want to receive gesture messages on, and it will automatically take care of registering itself with FingerGestures.

You could then add another custom script "MyGlobalTapHandler" to that object with the following code:
Code: [Select]
using UnityEngine;
using System.Collections;

[RequireComponent( typeof( FingerGesturesListener ) )]
public class MyGlobalTapHandler : MonoBehaviour
{
    void OnTap( FingerGestures.Events.Tap e )
    {
        if( e.SceneObject )
            Debug.Log( "Tapped object: " + e.SceneObject.name );
        else
            Debug.Log( "Tapped screen @ " + e.Position );
    }
}

When a tap gesture is detected, the FingerGestures singleton will send a tap event message to each registered listener (something the FingerGestureListener script automatically did for us).

There's much more to discuss, but that should give you a good idea on how to use FingerGestures with this new version, and how much easier to use it has become. I would really appreciate your help in testing this beta version and reporting any issue, concern or bug that you come across. My goal is to get this released on the asset store within the next 2 weeks, so I will be working on remaining features, bug fixes and documentation in the meanwhile.

Let me know what you think! :)

EDIT: added updated TBDragToMove.cs script to fix bugs reported by RedHerring and test84. Thanks ;)

14
Beta / FingerGestures v2.4.Beta0
« on: 13 August, 2012, 11:30:13 PM »
Here's the much talked about "next update", v2.4 :) This is a beta release though, and I'm putting it out there to catch any major problem before I put it up on the Asset Store once I'm back from vacation on the 26th of August. I would really appreciate if some of you could give it a good try and let me know if you are experiencing any problems or issues. There's quite a lot of changes and new features in there, but I've tried my hardest to keep API changes to a minimum.

I haven't had time to work on the documentation yet, but that's the bulk of the work I have left before this gets released on the Asset Store. I know that documentation hasn't been FingerGesture's strongest point, but I'm going to make that change :)

With this said, here's the list of changes!

IMPORTANT:
- You must uninstall/delete previous versions of FingerGestures before installing this one, otherwise you will get errors due to some files having moved.
- Backup your existing project before importing this new version


Highlights
- Each finger now tracks the top-most scene object under it (Finger.Collider, Finger.OnColliderChanged)
- Added toolbox scripts for object-based pinch & rotation gestures (TBPinch, TBTwist)
- Added panning camera controller (TBPan - good for topdown/side views)
- Added a drag-based first-persona camera controller (TBDragView & TBLookAtTap - think "google street view")
- Revamped swipe gesture (support for diagonals, exposed swipe motion vector)
- Made drag and swipe gestures more responsive
- Added rotation/twist gesture emulation on desktop (Ctrl + MouseWheel by default)
- Included PlayMaker actions for FingerGestures (located in Assets\FingerGestures\Extensions\PlayerMaker)

General
- Moved Toolbox scripts to the \Plugins\FingerGestures folder so they can be accesed from javascripts as well
- Reorganized the overall folder structure a bit
- Reworked the FingerGestures components menu to be more meaningfull

Core
- Added UpperLeftDiagonal, UpperRightDiagonal, LowerRightDiagonal and LowerLeftDiagonal to FingerGestures.SwipeDirection enum
- Reworked FingerGestures.GetSwipeDirection() to support diagonal directions
- Each finger now keeps track of the top-most collider/object under it (see also Finger.Collider, Finger.PreviousCollider, Finger.OnColliderChanged event)
- Added FingerGestures.PickObject() convenience methods for easy screen picking (see also FingerGestures.raycastCamera, FingerGestures.raycastObjectsUnderFingers, FingerGestures.raycastIgnoreLayerMask)
- SwipeGestureRecognizer: Removed SwipeGestureRecognizer.ValidDirections property
- SwipeGestureRecognizer: Added SwipeGestureRecognizer.Move property to expose the full swipe motion vector (direction & magnitude)
- SwipeGestureRecognizer: Added SwipeGestureRecognizer.MaxDistance property to limit how far the swipe can possibly go before
- Fixed incorrect SwipeGestureRecognizer.StartPosition (occasionally caused quick swipes to miss objects)
- Fixed incorrect DragGestureRecognizer.StartPosition (occasionally caused quick drags to miss objects)
- Added MouseRotationGestureRecognizer to emulate the Rotation/Twist gesture on desktop using Ctrl + MouseWheel by default

PlayMaker
- Included PlayMaker actions package (located in the Assets\FingerGestures\Extensions\PlayerMaker folder)
- Added FingerGestureDetectInput.swipeEvent for general swipe event notification
- Added FingerGestureDetectInput.storeSwipeMove to get swipe gesture motion
- Added FingerGestureDetectInput.storeSwipeDirectionName to retrieve approximate swipe gesture direction
- Added FingerGesturesGetFingerInfo.getGameObject property to store the current top-most object under the finger
- Changed FingerGesturesDetectInput.storeDragDelta type from FsmVector3 to FsmVector2
- Changed FingerGesturesGetFingerInfo.getPosition type from FsmVector3 to FsmVector2
- Changed FingerGesturesGetFingerInfo.getStartPosition type from FsmVector3 to FsmVector2
- Changed FingerGesturesGetFingerInfo.getPreviousPosition type from FsmVector3 to FsmVector2
- Changed FingerGesturesGetFingerInfo.getDeltaPosition type from FsmVector3 to FsmVector2
- Fixed FingerGestureDetectInput.storeSwipeVelocity not being assigned a value (thanks
- Fixed FingerGesturesGetFingerInfo not firing on each update when the "everyFrame" flag is set
- Fixed Rotation & Pinch gestures not using the ignoreLayerMask property when picking object
- Removed FingerGestureActionHelpers (replaced raycast cache by FingerGestures.PickObject)

Toolbox (Object-Based Gestures)
- TBInputManager: Fixed the "track gesture" flags not being used after initialization
- TComponent: Added "includeSource" property to the TBComponent Message class to indicate if the source TBComponent should be passed as argument to the target message method
- TBDrag: rigidbody objects are now dragged using rigidbody.MovePosition() instead of transform.position
- TBSwipe: Removed swipeLeft/Right/Up/Down messages
- TBSwipe: Added TBSwipe.Move property to expose the full swipe motion vector
- Added TBHover script to signal when the finger is entering/leaving the object it's put on
- Added TBPinch to signal when a pinch gesture is performed on the object it's put on
- Added TBScaleOnPinch script used in conjuction with TBPinch to scale the object up or down when it's pinched
- Added TBTwist script to signal when a twist/rotation gesture is performed on the object it's put on
- Added TBRotateOnTwist script used in conjunction with TBTwist to rotate the object when it is being twisted

Toolbox (Camera Controllers)
- TBDragOrbit: Now using Mathf.LerpAngle() instead of Mathf.Lerp() to interpolate rotation angles (thanks qholmes!)
- TBDragOrbit: added clampYaw, minYaw and maxYaw properties to allow limiting the horizontal rotation angle
- Added ZoomPercent property to TBPinchZoom
- Added TBPan camera controller, which uses drag gesture to move the view along the camera plane (useful for topdown/side views)
- Added TBDragView first-persona camera controller (similar to google street view)
- Added TBLookAtTap utility script (used by TBDragView)

Samples
- Added Toolbox-Hover sample to demonstrate new TBHover script
- Added Toolbox-Pinch sample to demonstrate new TBPinch + TBScaleOnPinch scripts
- Added Toolbox-Twist sample to demonstrate new TBTwist + TBRotateOnTwist scripts
- Added Toolbox-PanCamera sample to demonstrate new TBPan camera controller script
- Updated Toolbox-OneFingerGestures to show how to use of a constrained and non-constrained swipe gesture direction
- Added EmitParticlesOnSwipe sample script to show how to use the updated TBSwipe (used in Toolbox-OneFingerGestures sample scene)
- Added ChangeMaterialOnHover and ChangeScaleOnHover sample scripts to show to use TBHover (used in Toolbox-Hover sample scene)
- Renamed Toolbox-DragDrop to Toolbox-Drag
- Removed advanced samples from demo as they need to be reworked
- Update the start menu content

15
I'll be away on vacation from August 15th to August 26th with no internet access, so I won't be able to provide any support during that period. This also means I will not be able to approve membership requests to the FingerGesturer group during that period either, as this is still a manual process at the moment.

You can still post your questions and membership requests on the forum and I will try to get back to you as quickly as possible once I'm back.


Pages: [1] 2 3