Skip to content

Commit 0edcb0b

Browse files
RogPodgekeveleigh
andauthored
Fixed issue where Controller Visuals weren't initialized before OnSourceDetected (#10625)
* Fixed issue where Controller Visuals weren't initialized before OnSourceDetected * Update Assets/MRTK/Providers/Oculus/XRSDK/Controllers/OculusXRSDKTouchController.cs Co-authored-by: Kurtis <[email protected]> * null check Co-authored-by: Kurtis <[email protected]>
1 parent 05d8a79 commit 0edcb0b

File tree

2 files changed

+19
-44
lines changed

2 files changed

+19
-44
lines changed

Assets/MRTK/Providers/Oculus/XRSDK/Controllers/OculusXRSDKTouchController.cs

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,23 @@ protected override bool TryRenderControllerModel(System.Type controllerType, Inp
108108
}
109109
}
110110

111-
private async void TryRenderControllerModelFromOculus()
111+
private void TryRenderControllerModelFromOculus()
112112
{
113-
await WaitForOculusVisuals();
113+
OculusXRSDKDeviceManager deviceManager = CoreServices.GetInputSystemDataProvider<OculusXRSDKDeviceManager>();
114+
115+
if(deviceManager.IsNotNull())
116+
{
117+
GameObject platformVisualization = null;
118+
if (ControllerHandedness == Handedness.Left)
119+
{
120+
platformVisualization = deviceManager.leftControllerHelper.gameObject;
121+
}
122+
else if (ControllerHandedness == Handedness.Right)
123+
{
124+
platformVisualization = deviceManager.rightControllerHelper.gameObject;
125+
}
126+
RegisterControllerVisualization(platformVisualization);
127+
}
114128

115129
if (this != null)
116130
{
@@ -127,18 +141,7 @@ private async void TryRenderControllerModelFromOculus()
127141
}
128142
}
129143

130-
private const int ControllerInitializationTimeout = 1000;
131-
private async Task WaitForOculusVisuals()
132-
{
133-
int timeWaited = 0;
134-
while (OculusControllerVisualization == null || timeWaited > ControllerInitializationTimeout)
135-
{
136-
await Task.Delay(100);
137-
timeWaited += 100;
138-
}
139-
}
140-
141-
internal void RegisterControllerVisualization(GameObject visualization)
144+
private void RegisterControllerVisualization(GameObject visualization)
142145
{
143146
OculusControllerVisualization = visualization;
144147
if (GetControllerVisualizationProfile() != null &&

Assets/MRTK/Providers/Oculus/XRSDK/OculusXRSDKDeviceManager.cs

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ public override void Initialize()
5959
private readonly Dictionary<Handedness, OculusHand> trackedHands = new Dictionary<Handedness, OculusHand>();
6060

6161
private OVRCameraRig cameraRig;
62-
private OVRControllerHelper leftControllerHelper;
63-
private OVRControllerHelper rightControllerHelper;
62+
internal OVRControllerHelper leftControllerHelper;
63+
internal OVRControllerHelper rightControllerHelper;
6464

6565
private OVRHand rightHand;
6666
private OVRSkeleton rightSkeleton;
@@ -93,34 +93,6 @@ public override bool CheckCapability(MixedRealityCapability capability)
9393

9494
#region Controller Utilities
9595

96-
#if OCULUSINTEGRATION_PRESENT
97-
/// <inheritdoc />
98-
protected override GenericXRSDKController GetOrAddController(InputDevice inputDevice)
99-
{
100-
GenericXRSDKController controller = base.GetOrAddController(inputDevice);
101-
102-
if (!cameraRig.IsNull() && controller is OculusXRSDKTouchController oculusTouchController && oculusTouchController.OculusControllerVisualization == null)
103-
{
104-
GameObject platformVisualization = null;
105-
if (oculusTouchController.ControllerHandedness == Handedness.Left)
106-
{
107-
platformVisualization = leftControllerHelper.gameObject;
108-
}
109-
if (oculusTouchController.ControllerHandedness == Handedness.Right)
110-
{
111-
platformVisualization = rightControllerHelper.gameObject;
112-
}
113-
114-
if(platformVisualization != null)
115-
{
116-
oculusTouchController.RegisterControllerVisualization(platformVisualization);
117-
}
118-
}
119-
120-
return controller;
121-
}
122-
#endif
123-
12496
/// <inheritdoc />
12597
protected override Type GetControllerType(SupportedControllerType supportedControllerType)
12698
{

0 commit comments

Comments
 (0)