Protected_ProtectedcameraProtectedinteractionReadonlytargetingthe hit information InteractableHitInfo for the current interactable or null if there was no hit
Get the set of currently hovered Interactables Poke hover requires single validation (index touching) Direct-only hover requires dual validation (index touching and nearby)
Current interaction planes detected by proximity colliders Used by HandInteractor for field targeting mode
Current trigger type (Poke, Pinch, or None) Exposed to HandInteractor for event dispatching
Direction of the index finger (forward vector). Used for interaction raycasting and visual feedback.
end position in world space
Whether the finger has pushed through the interactable beyond the threshold. When true, the poke is considered invalid to prevent accidental triggers.
Current interaction strength (0-1).
Returns different values based on interaction state:
Normalized poke depth (0-1). 0 = at surface, 1 = at or beyond max depth threshold (POKE_STRENGTH_DISTANCE_THRESHOLD_CM).
Current poke depth in centimeters. Distance from the hit surface to the fingertip (increases as finger pushes deeper).
Whether the current poke gesture is valid for interaction. Returns false if the finger has pushed through the interactable or hand tracking is unavailable.
origin position in world space
Set the _currentInteractableHitInfo to null, used when an Interactable is deleted from Lens Studio, to keep state in sync
Clears an InteractionPlane from the cache (in the event of the InteractionPlane being de-registered).
the InteractionPlane to clear.
ProtecteddeleteDestroy the provider and clean up resources
Staticgetlist of RayCastHit
targeting mode used to filter hits
function that is used to get the interactable associated to the collider (to enable the method to be static)
offset value that defines if the raycast was offset from the start point
camera used to verify FoV
whether interactions that are out of the camera's field of view are allowed
the hit corresponding to the target from the list of hits
ProtectedgetStaticgetThe nearest deeply nested interactable, is the latest descendant of a list of interactables, when they are ordered by distance.
list of hits
whether the provider has found a target or not
Check if an Interactable is currently being hovered Different logic for Poke vs Pinch gestures
Reset all internal state
Recomputes the target
Protectedupdate
Unified provider for physical interactions (Poke and Direct/Pinch). Combines precise index finger detection (spherecast) with proximity detection (collider).
This provider handles both poke and pinch gestures in a single state machine, eliminating async coordination issues between separate providers and enabling seamless transitions between interaction types.