@@ -16,6 +16,13 @@ public class BasisUIRaycastProcess
1616 public BasisDeviceManagement BasisDeviceManagement ;
1717 public List < BasisInput > Inputs ;
1818 public bool HasEvent = false ;
19+ public const float TriggerReleaseThreshold = 0.5f ;
20+
21+ private static bool IsTriggerDown ( BasisInput input , bool wasDown )
22+ {
23+ float trigger = input . CurrentInputState . Trigger ;
24+ return wasDown ? trigger >= TriggerReleaseThreshold : trigger >= 1f ;
25+ }
1926
2027 public void Initialize ( )
2128 {
@@ -83,7 +90,7 @@ public void Simulate()
8390
8491 bool hasActiveUITarget = input . BasisUIRaycast . WasCorrectLayer && input . BasisUIRaycast . HadRaycastUITarget ;
8592
86- bool isDownThisFrame = input . CurrentInputState . Trigger == 1 ;
93+ bool isDownThisFrame = IsTriggerDown ( input , eventData . WasLastDown ) ;
8794
8895 // Track down-transition for deselection later
8996 if ( input . BasisUIRaycast . WasCorrectLayer )
@@ -184,7 +191,7 @@ public void SimulateOnCanvas(RaycastResult raycastResult, BasisRaycastUIHitData
184191 // Always keep latest raycast, so movement / scroll / hover use up-to-date info
185192 currentEventData . pointerCurrentRaycast = raycastResult ;
186193
187- bool IsDownThisFrame = BaseInput . CurrentInputState . Trigger == 1 ;
194+ bool IsDownThisFrame = IsTriggerDown ( BaseInput , currentEventData . WasLastDown ) ;
188195
189196 Shader . SetGlobalVector ( CursorPos , hit . worldHitPosition ) ;
190197
0 commit comments