Skip to content

Commit f7b5cb8

Browse files
author
lawwong
committed
Now Oculus HandTracking/RenderModel option requires activate OculusVRModule
1 parent 01c5a90 commit f7b5cb8

2 files changed

Lines changed: 109 additions & 12 deletions

File tree

Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OculusGoSettings.cs

Lines changed: 37 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -446,18 +446,18 @@ private class OculusGoSettings : VRPlatformSetting
446446
private Foldouter m_foldouter = new Foldouter();
447447

448448
#if VIU_OCULUSVR_20_0_OR_NEWER
449-
private OVRProjectConfig m_oculusProjectConfig;
449+
private static OVRProjectConfig s_oculusProjectConfig;
450450

451-
private OVRProjectConfig oculusProjectConfig
451+
public static OVRProjectConfig oculusProjectConfig
452452
{
453453
get
454454
{
455-
if (m_oculusProjectConfig == null)
455+
if (s_oculusProjectConfig == null)
456456
{
457-
m_oculusProjectConfig = OVRProjectConfig.GetProjectConfig();
457+
s_oculusProjectConfig = OVRProjectConfig.GetProjectConfig();
458458
}
459459

460-
return m_oculusProjectConfig;
460+
return s_oculusProjectConfig;
461461
}
462462
}
463463
#endif
@@ -686,12 +686,23 @@ public override void OnPreferenceGUI()
686686
const string enableHandRenderModelTitle = "Enable Oculus Tracked Hand Render Model";
687687
#if VIU_OCULUSVR_20_0_OR_NEWER
688688
{
689-
var oldEnableHandTracking = oculusProjectConfig.handTrackingSupport != OVRProjectConfig.HandTrackingSupport.ControllersOnly;
689+
var oldEnableHandTracking = VIUSettings.activateOculusVRModule && oculusProjectConfig.handTrackingSupport != OVRProjectConfig.HandTrackingSupport.ControllersOnly;
690690
var newEnableHandTracking = EditorGUILayout.ToggleLeft(enableHandTrackingTitle, oldEnableHandTracking);
691691
if (newEnableHandTracking)
692-
{ if (!oldEnableHandTracking) { oculusProjectConfig.handTrackingSupport = OVRProjectConfig.HandTrackingSupport.ControllersAndHands; } }
692+
{
693+
if (!oldEnableHandTracking)
694+
{
695+
VIUSettings.activateOculusVRModule = true;
696+
oculusProjectConfig.handTrackingSupport = OVRProjectConfig.HandTrackingSupport.ControllersAndHands;
697+
}
698+
}
693699
else
694-
{ if (oldEnableHandTracking) { oculusProjectConfig.handTrackingSupport = OVRProjectConfig.HandTrackingSupport.ControllersOnly; } }
700+
{
701+
if (oldEnableHandTracking)
702+
{
703+
oculusProjectConfig.handTrackingSupport = OVRProjectConfig.HandTrackingSupport.ControllersOnly;
704+
}
705+
}
695706

696707
if (newEnableHandTracking)
697708
{
@@ -730,9 +741,25 @@ public override void OnPreferenceGUI()
730741
const string enableControllerRenderModelSkeletonTitle = "Enable Hand Attached to Oculus Controller Render Model";
731742
if (OculusVRExtension.VIUOvrAvatar.SUPPORTED)
732743
{
733-
VIUSettings.EnableOculusSDKControllerRenderModel = EditorGUILayout.ToggleLeft(new GUIContent(enableControllerRenderModelTitle, VIUSettings.ENABLE_OCULUS_SDK_CONTROLLER_RENDER_MODEL_TOOLTIP), VIUSettings.EnableOculusSDKControllerRenderModel);
744+
var oldValue = VIUSettings.activateOculusVRModule && VIUSettings.EnableOculusSDKControllerRenderModel;
745+
var newValue = EditorGUILayout.ToggleLeft(new GUIContent(enableControllerRenderModelTitle, VIUSettings.ENABLE_OCULUS_SDK_CONTROLLER_RENDER_MODEL_TOOLTIP), oldValue);
746+
if (newValue)
747+
{
748+
if (!oldValue)
749+
{
750+
VIUSettings.activateOculusVRModule = true;
751+
VIUSettings.EnableOculusSDKControllerRenderModel = true;
752+
}
753+
}
754+
else
755+
{
756+
if (oldValue)
757+
{
758+
VIUSettings.EnableOculusSDKControllerRenderModel = false;
759+
}
760+
}
734761

735-
if (VIUSettings.EnableOculusSDKControllerRenderModel)
762+
if (newValue)
736763
{
737764
VIUSettings.EnableOculusSDKControllerRenderModelSkeleton = EditorGUILayout.ToggleLeft(new GUIContent(enableControllerRenderModelSkeletonTitle, VIUSettings.ENABLE_OCULUS_SDK_CONTROLLER_RENDER_MODEL_SKELETON_TOOLTIP), VIUSettings.EnableOculusSDKControllerRenderModelSkeleton);
738765
}

Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OculusSettings.cs

Lines changed: 72 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,15 +256,85 @@ public override void OnPreferenceGUI()
256256
{
257257
EditorGUI.indentLevel += 2;
258258

259+
// Hand tracking support
260+
const string enableHandTrackingTitle = "Enable Oculus Hand Tracking";
261+
const string enableHandRenderModelTitle = "Enable Oculus Tracked Hand Render Model";
262+
#if VIU_OCULUSVR_20_0_OR_NEWER
263+
{
264+
var oldEnableHandTracking = VIUSettings.activateOculusVRModule && OculusGoSettings.oculusProjectConfig.handTrackingSupport != OVRProjectConfig.HandTrackingSupport.ControllersOnly;
265+
var newEnableHandTracking = EditorGUILayout.ToggleLeft(enableHandTrackingTitle, oldEnableHandTracking);
266+
if (newEnableHandTracking)
267+
{
268+
if (!oldEnableHandTracking)
269+
{
270+
VIUSettings.activateOculusVRModule = true;
271+
OculusGoSettings.oculusProjectConfig.handTrackingSupport = OVRProjectConfig.HandTrackingSupport.ControllersAndHands;
272+
}
273+
}
274+
else
275+
{
276+
if (oldEnableHandTracking)
277+
{
278+
OculusGoSettings.oculusProjectConfig.handTrackingSupport = OVRProjectConfig.HandTrackingSupport.ControllersOnly;
279+
}
280+
}
281+
282+
if (newEnableHandTracking)
283+
{
284+
VIUSettings.EnableOculusSDKHandRenderModel = EditorGUILayout.ToggleLeft(new GUIContent(enableHandRenderModelTitle, VIUSettings.ENABLE_OCULUS_SDK_HAND_RENDER_MODEL_TOOLTIP), VIUSettings.EnableOculusSDKHandRenderModel);
285+
}
286+
else
287+
{
288+
var wasGUIEnabled = GUI.enabled;
289+
GUI.enabled = false;
290+
EditorGUILayout.ToggleLeft(new GUIContent(enableHandRenderModelTitle, VIUSettings.ENABLE_OCULUS_SDK_HAND_RENDER_MODEL_TOOLTIP), false);
291+
GUI.enabled = wasGUIEnabled;
292+
}
293+
}
294+
#else
295+
{
296+
var wasGUIEnabled = GUI.enabled;
297+
GUI.enabled = false;
298+
299+
EditorGUILayout.BeginHorizontal();
300+
EditorGUILayout.ToggleLeft(new GUIContent(enableHandTrackingTitle, "Hand tracking not supported. Please import latest Oculus Integration."), false, GUILayout.Width(280f));
301+
GUILayout.FlexibleSpace();
302+
GUI.enabled = true;
303+
ShowUrlLinkButton(URL_OCULUS_VR_PLUGIN, "Update Oculus Integration");
304+
EditorGUILayout.EndHorizontal();
305+
306+
GUI.enabled = false;
307+
EditorGUILayout.ToggleLeft(new GUIContent(enableHandRenderModelTitle, VIUSettings.ENABLE_OCULUS_SDK_HAND_RENDER_MODEL_TOOLTIP), false);
308+
309+
GUI.enabled = wasGUIEnabled;
310+
}
311+
#endif
312+
259313
#pragma warning disable 0162
260314
// Controller Render Model
261315
const string enableControllerRenderModelTitle = "Enable Oculus Controller Render Model";
262316
const string enableControllerRenderModelSkeletonTitle = "Enable Hand Attached to Oculus Controller Render Model";
263317
if (OculusVRExtension.VIUOvrAvatar.SUPPORTED)
264318
{
265-
VIUSettings.EnableOculusSDKControllerRenderModel = EditorGUILayout.ToggleLeft(new GUIContent(enableControllerRenderModelTitle, VIUSettings.ENABLE_OCULUS_SDK_CONTROLLER_RENDER_MODEL_TOOLTIP), VIUSettings.EnableOculusSDKControllerRenderModel);
319+
var oldValue = VIUSettings.activateOculusVRModule && VIUSettings.EnableOculusSDKControllerRenderModel;
320+
var newValue = EditorGUILayout.ToggleLeft(new GUIContent(enableControllerRenderModelTitle, VIUSettings.ENABLE_OCULUS_SDK_CONTROLLER_RENDER_MODEL_TOOLTIP), oldValue);
321+
if (newValue)
322+
{
323+
if (!oldValue)
324+
{
325+
VIUSettings.activateOculusVRModule = true;
326+
VIUSettings.EnableOculusSDKControllerRenderModel = true;
327+
}
328+
}
329+
else
330+
{
331+
if (oldValue)
332+
{
333+
VIUSettings.EnableOculusSDKControllerRenderModel = false;
334+
}
335+
}
266336

267-
if (VIUSettings.EnableOculusSDKControllerRenderModel)
337+
if (newValue)
268338
{
269339
VIUSettings.EnableOculusSDKControllerRenderModelSkeleton = EditorGUILayout.ToggleLeft(new GUIContent(enableControllerRenderModelSkeletonTitle, VIUSettings.ENABLE_OCULUS_SDK_CONTROLLER_RENDER_MODEL_SKELETON_TOOLTIP), VIUSettings.EnableOculusSDKControllerRenderModelSkeleton);
270340
}

0 commit comments

Comments
 (0)