@@ -165,30 +165,36 @@ internal void OnUpdate()
165
165
return ;
166
166
}
167
167
UpdateXRCameras ( ) ;
168
- bool hasHandsData = false ;
168
+ bool handWasDisabled = false ;
169
169
if ( OnHandUpdate != null && this . xrState != WebXRState . NORMAL )
170
170
{
171
- if ( GetHandFromHandsArray ( 0 , ref leftHand ) )
171
+ handWasDisabled = ! leftHand . enabled ;
172
+ if ( GetHandFromHandsArray ( 0 , ref leftHand )
173
+ && ( leftHand . enabled || ! handWasDisabled ) )
172
174
{
173
175
OnHandUpdate ? . Invoke ( leftHand ) ;
174
176
}
175
177
176
- if ( GetHandFromHandsArray ( 1 , ref rightHand ) )
178
+ handWasDisabled = ! rightHand . enabled ;
179
+ if ( GetHandFromHandsArray ( 1 , ref rightHand )
180
+ && ( rightHand . enabled || ! handWasDisabled ) )
177
181
{
178
182
OnHandUpdate ? . Invoke ( rightHand ) ;
179
183
}
180
-
181
- hasHandsData = leftHand . enabled || rightHand . enabled ;
182
184
}
183
185
184
- if ( ! hasHandsData && OnControllerUpdate != null && this . xrState != WebXRState . NORMAL )
186
+ if ( OnControllerUpdate != null && this . xrState != WebXRState . NORMAL )
185
187
{
186
- if ( GetGamepadFromControllersArray ( 0 , ref controller1 ) )
188
+ handWasDisabled = ! controller1 . enabled ;
189
+ if ( GetGamepadFromControllersArray ( 0 , ref controller1 )
190
+ && ( controller1 . enabled || ! handWasDisabled ) )
187
191
{
188
192
OnControllerUpdate ? . Invoke ( controller1 ) ;
189
193
}
190
194
191
- if ( GetGamepadFromControllersArray ( 1 , ref controller2 ) )
195
+ handWasDisabled = ! controller2 . enabled ;
196
+ if ( GetGamepadFromControllersArray ( 1 , ref controller2 )
197
+ && ( controller2 . enabled || ! handWasDisabled ) )
192
198
{
193
199
OnControllerUpdate ? . Invoke ( controller2 ) ;
194
200
}
0 commit comments