Skip to content

Commit 3cc59c8

Browse files
author
lawwong
committed
Add back RoleChangedEvent, remove unused code
1 parent 539e922 commit 3cc59c8

File tree

2 files changed

+19
-52
lines changed

2 files changed

+19
-52
lines changed

Assets/HTC.UnityPlugin/VRModule/Modules/UnityXRModule.cs

Lines changed: 17 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ public override void CreateCamera(VRCameraHook hook)
5555
[RenderModelHook.CreatorPriorityAttirbute(0)]
5656
private class RenderModelCreator : RenderModelHook.DefaultRenderModelCreator
5757
{
58-
private uint m_index = INVALID_DEVICE_INDEX;
59-
6058
public override bool shouldActive { get { return s_moduleInstance == null ? false : s_moduleInstance.isActivated; } }
6159

6260
public override void UpdateRenderModel()
@@ -97,20 +95,9 @@ public override void UpdateRenderModel()
9795
}
9896
}
9997
else
100-
{
101-
base.UpdateRenderModel();
102-
}
103-
#else
104-
base.UpdateRenderModel();
10598
#endif
106-
}
107-
108-
public override void CleanUpRenderModel()
109-
{
110-
if (m_model != null)
11199
{
112-
UnityEngine.Object.Destroy(m_model);
113-
m_model = null;
100+
base.UpdateRenderModel();
114101
}
115102
}
116103
}
@@ -243,6 +230,7 @@ public override void BeforeRenderUpdate()
243230
currState.isConnected = false;
244231
}
245232

233+
bool roleChanged = false;
246234
InputDevices.GetDevices(m_connectedDevices);
247235
foreach (InputDevice device in m_connectedDevices)
248236
{
@@ -261,10 +249,12 @@ public override void BeforeRenderUpdate()
261249
if ((device.characteristics & InputDeviceCharacteristics.Left) > 0u)
262250
{
263251
m_leftHandedDeviceIndex = deviceIndex;
252+
roleChanged = true;
264253
}
265254
else if ((device.characteristics & InputDeviceCharacteristics.Right) > 0u)
266255
{
267256
m_rightHandedDeviceIndex = deviceIndex;
257+
roleChanged = true;
268258
}
269259

270260
Debug.LogFormat("Device connected: {0} / {1} / {2} / {3} / {4} / {5} ({6})", deviceIndex, currState.deviceClass, currState.deviceModel, currState.modelNumber, currState.serialNumber, device.name, device.characteristics);
@@ -291,13 +281,24 @@ public override void BeforeRenderUpdate()
291281
if (!currState.isConnected)
292282
{
293283
currState.Reset();
294-
if (deviceIndex == m_leftHandedDeviceIndex) { m_leftHandedDeviceIndex = VRModule.INVALID_DEVICE_INDEX; }
295-
else if (deviceIndex == m_rightHandedDeviceIndex) { m_rightHandedDeviceIndex = VRModule.INVALID_DEVICE_INDEX; }
284+
285+
if (deviceIndex == m_leftHandedDeviceIndex)
286+
{
287+
m_leftHandedDeviceIndex = VRModule.INVALID_DEVICE_INDEX;
288+
roleChanged = true;
289+
}
290+
else if (deviceIndex == m_rightHandedDeviceIndex)
291+
{
292+
m_rightHandedDeviceIndex = VRModule.INVALID_DEVICE_INDEX;
293+
roleChanged = true;
294+
}
296295
}
297296

298297
++deviceIndex;
299298
}
300299

300+
if (roleChanged) { InvokeControllerRoleChangedEvent(); }
301+
301302
ProcessConnectedDeviceChanged();
302303
ProcessDevicePoseChanged();
303304
ProcessDeviceInputChanged();
@@ -428,42 +429,6 @@ private void UpdateControllerState(IVRModuleDeviceStateRW state, InputDevice dev
428429
}
429430
}
430431

431-
private void UpdateHandHeldDeviceIndex()
432-
{
433-
uint leftHandedDeviceIndex = INVALID_DEVICE_INDEX;
434-
InputDevice leftHandedDevice = InputDevices.GetDeviceAtXRNode(XRNode.LeftHand);
435-
if (leftHandedDevice.isValid)
436-
{
437-
leftHandedDeviceIndex = GetDeviceIndex(GetDeviceUID(leftHandedDevice));
438-
}
439-
440-
uint rightHandedDeviceIndex = INVALID_DEVICE_INDEX;
441-
InputDevice rightHandedDevice = InputDevices.GetDeviceAtXRNode(XRNode.RightHand);
442-
if (rightHandedDevice.isValid)
443-
{
444-
rightHandedDeviceIndex = GetDeviceIndex(GetDeviceUID(rightHandedDevice));
445-
}
446-
447-
if (m_rightHandedDeviceIndex != rightHandedDeviceIndex || m_leftHandedDeviceIndex != leftHandedDeviceIndex)
448-
{
449-
InvokeControllerRoleChangedEvent();
450-
}
451-
452-
m_leftHandedDeviceIndex = leftHandedDeviceIndex;
453-
m_rightHandedDeviceIndex = rightHandedDeviceIndex;
454-
}
455-
456-
private uint GetDeviceIndex(int uid)
457-
{
458-
uint index = 0;
459-
if (m_deviceUidToIndex.TryGetValue(uid, out index))
460-
{
461-
return index;
462-
}
463-
464-
return INVALID_DEVICE_INDEX;
465-
}
466-
467432
private bool TryGetDevice(uint index, out InputDevice deviceOut)
468433
{
469434
deviceOut = default;

Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Misc/RenderModelHook.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ protected virtual void OnEnable()
238238
{
239239
VRModule.onActiveModuleChanged += OnActiveModuleChanged;
240240
m_viveRole.onDeviceIndexChanged += OnDeviceIndexChanged;
241+
m_viveRole.onRoleChanged += UpdateModel;
241242

242243
UpdateModel();
243244
}
@@ -246,6 +247,7 @@ protected virtual void OnDisable()
246247
{
247248
VRModule.onActiveModuleChanged -= OnActiveModuleChanged;
248249
m_viveRole.onDeviceIndexChanged -= OnDeviceIndexChanged;
250+
m_viveRole.onRoleChanged -= UpdateModel;
249251

250252
UpdateModel();
251253
}

0 commit comments

Comments
 (0)