Skip to content

Commit 585a169

Browse files
committed
OnControllerUpdate is not dependent on OnHandUpdate in WebXRSubsystem
1 parent f3cfc91 commit 585a169

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

Packages/webxr/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88

99
### Changed
1010
- Enabled stencil buffer when creating the session XRWebGLLayer.
11+
- OnControllerUpdate is not dependent on OnHandUpdate in WebXRSubsystem.
1112

1213
## [0.18.0] - 2023-08-29
1314
### Added

Packages/webxr/Runtime/XRPlugin/WebXRSubsystem.cs

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -165,30 +165,36 @@ internal void OnUpdate()
165165
return;
166166
}
167167
UpdateXRCameras();
168-
bool hasHandsData = false;
168+
bool handWasDisabled = false;
169169
if (OnHandUpdate != null && this.xrState != WebXRState.NORMAL)
170170
{
171-
if (GetHandFromHandsArray(0, ref leftHand))
171+
handWasDisabled = !leftHand.enabled;
172+
if (GetHandFromHandsArray(0, ref leftHand)
173+
&& (leftHand.enabled || !handWasDisabled))
172174
{
173175
OnHandUpdate?.Invoke(leftHand);
174176
}
175177

176-
if (GetHandFromHandsArray(1, ref rightHand))
178+
handWasDisabled = !rightHand.enabled;
179+
if (GetHandFromHandsArray(1, ref rightHand)
180+
&& (rightHand.enabled || !handWasDisabled))
177181
{
178182
OnHandUpdate?.Invoke(rightHand);
179183
}
180-
181-
hasHandsData = leftHand.enabled || rightHand.enabled;
182184
}
183185

184-
if (!hasHandsData && OnControllerUpdate != null && this.xrState != WebXRState.NORMAL)
186+
if (OnControllerUpdate != null && this.xrState != WebXRState.NORMAL)
185187
{
186-
if (GetGamepadFromControllersArray(0, ref controller1))
188+
handWasDisabled = !controller1.enabled;
189+
if (GetGamepadFromControllersArray(0, ref controller1)
190+
&& (controller1.enabled || !handWasDisabled))
187191
{
188192
OnControllerUpdate?.Invoke(controller1);
189193
}
190194

191-
if (GetGamepadFromControllersArray(1, ref controller2))
195+
handWasDisabled = !controller2.enabled;
196+
if (GetGamepadFromControllersArray(1, ref controller2)
197+
&& (controller2.enabled || !handWasDisabled))
192198
{
193199
OnControllerUpdate?.Invoke(controller2);
194200
}

0 commit comments

Comments
 (0)