You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Holograms 211 contains a relatively simple implementation of hand based
object manipulation. That implementation uses the world space deltas
to move holograms exactly as the hand moves. This works fine in some
cases, but becomes limiting in more sophisticated manipulation
scenarios.
The implementation in this change is taken directly from 3D Viewer
and ActionGrams and supports more sophisticated movement scenarios
which combine both gesture and gaze. For example, with this new
implementation if you manipulate a hologram and then turn your head
the hologram will move with your head, while still allowing you to make
adjustments with your hands. If you manipulate a hologram and then
walk somewhere else the hologram will move with you as long as you
maintain the gesture. This allows for users to make large adjustments
using their gaze and position, while making smaller adjustments with
their hands, resulting in more intuitive and effective manipulation.
GestureManager creates a gesture recognizer and signs up for a tap gesture. When a tap gesture is detected, GestureManager uses GazeManager to find the game object.
76
-
GestureManager then sends a message to that game object.
75
+
GestureManager provides access to several different input gestures, including Tap and Manipulation.
77
76
78
-
It also has an **OverrideFocusedObject** which lets you send gesture input to a specific object by overriding the gaze.
77
+
When a tap gesture is detected, GestureManager uses GazeManager to find the game object.
78
+
GestureManager then sends a message to that game object. It also has an **OverrideFocusedObject** which lets you send gesture input to a specific object by overriding the gaze.
79
+
80
+
Using Manipulation requires subscribing to the ManipulationStarted events and then querying information about the manipulation gesture via ManipulationOffset and ManipulationHandPosition. See GestureManipulator for an example.
81
+
82
+
#### GestureManipulator.cs
83
+
A component for moving an object via the GestureManager manipulation gesture.
84
+
85
+
When an active GestureManipulator component is attached to a GameObject it will subscribe
86
+
to GestureManager's manipulation gestures, and move the GameObject when a ManipulationGesture occurs.
87
+
If the GestureManipulator is disabled it will not respond to any manipulation gestures.
88
+
89
+
This means that if multiple GestureManipulators are active in a given scene when a manipulation
90
+
gesture is performed, all the relevant GameObjects will be moved. If the desired behavior is that only
91
+
a single object be moved at a time, it is recommended that objects which should not be moved disable
92
+
their GestureManipulators, then re-enable them when necessary (e.g. the object is focused).
79
93
80
94
#### HandGuidance.cs
81
95
Show a GameObject when a gesturing hand is about to lose tracking.
0 commit comments