@@ -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