public void Awake() { rotationFilter = new KalmanFilteredRotation(); rotationFilter.skipIdenticalMeasurements = true; rotationFilter.rotationNoiseCovariance = rotationNoiseCovariance; bodyTrackingDeviceID = (int)bodyTrackingDevice; RUISGestureRecognizer[] gestureRecognizerScripts = GetComponents <RUISGestureRecognizer>(); foreach (RUISGestureRecognizer script in gestureRecognizerScripts) { if (script.ToString() != gestureSelectionScriptName) { script.enabled = false; } else { gestureRecognizer = script; } } if (!skeletonManager) { skeletonManager = FindObjectOfType(typeof(RUISSkeletonManager)) as RUISSkeletonManager; } selectionVisualizers = new Texture2D[8]; for (int i = 0; i < amountOfSelectionVisualizerImages; i++) { selectionVisualizers[i] = Resources.Load("RUIS/Graphics/Selection/visualizer" + (i + 1)) as Texture2D; } displayManager = FindObjectOfType(typeof(RUISDisplayManager)) as RUISDisplayManager; if (!gestureRecognizer) { Debug.LogWarning(typeof(RUISGestureRecognizer) + " component was not found for wand '" + name + "'." + "Add it if you want to use gesture-based selection."); } wandSelector = GetComponent <RUISWandSelector>(); if (!wandSelector) { Debug.LogError(typeof(RUISWandSelector) + " component was not found for wand '" + name + "'." + "Add it if you want to use gesture-based selection. Disabling wand."); this.enabled = false; } PlayerLost(); }
public void Start() { RUISInputManager inputManager = FindObjectOfType(typeof(RUISInputManager)) as RUISInputManager; RUISHoldGestureRecognizer holdGestureRecognizer = GetComponent <RUISHoldGestureRecognizer>(); if (inputManager) { if (switchToAvailableKinect) { if (bodyTrackingDevice == RUISSkeletonController.bodyTrackingDeviceType.Kinect1 && !inputManager.enableKinect && inputManager.enableKinect2) { bodyTrackingDevice = RUISSkeletonController.bodyTrackingDeviceType.Kinect2; } else if (bodyTrackingDevice == RUISSkeletonController.bodyTrackingDeviceType.Kinect2 && !inputManager.enableKinect2 && inputManager.enableKinect) { bodyTrackingDevice = RUISSkeletonController.bodyTrackingDeviceType.Kinect1; if (gestureRecognizer != holdGestureRecognizer) // Switching to the only selection gesture that RUIS has for Kinect 1 { gestureRecognizer.enabled = false; holdGestureRecognizer.enabled = true; gestureRecognizer = holdGestureRecognizer; Debug.LogWarning("Switched gesture recognizer of '" + name + "' to " + typeof(RUISHoldGestureRecognizer) + " because " + "Kinect 1 is enabled instead of Kinect 2, and at the moment that is the only supported Kinect 1 gesture."); gestureSelectionScriptName = holdGestureRecognizer.ToString(); } } else if (!inputManager.enableKinect2 && !inputManager.enableKinect) { Debug.LogWarning("Kinect 1 and 2 are not enabled in RUIS InputManager, disabling Skeleton Wand gameobject '" + name + "'."); gameObject.SetActive(false); } bodyTrackingDeviceID = (int)bodyTrackingDevice; } } if (gestureRecognizer == holdGestureRecognizer) { wandSelector.toggleSelection = true; wandSelector.grabWhileButtonDown = false; } else { showVisualizer = false; // HACK: this is mainly for RUISFistGestureRecognizer. If other gestures are added, comment this line } }
public void Awake() { rotationFilter = new KalmanFilteredRotation(); rotationFilter.skipIdenticalMeasurements = true; rotationFilter.rotationNoiseCovariance = rotationNoiseCovariance; bodyTrackingDeviceID = (int)bodyTrackingDevice; RUISGestureRecognizer[] gestureRecognizerScripts = GetComponents<RUISGestureRecognizer>(); foreach(RUISGestureRecognizer script in gestureRecognizerScripts) { if(script.ToString() != gestureSelectionScriptName) script.enabled = false; else gestureRecognizer = script; } if (!skeletonManager) { skeletonManager = FindObjectOfType(typeof(RUISSkeletonManager)) as RUISSkeletonManager; } selectionVisualizers = new Texture2D[8]; for (int i = 0; i < amountOfSelectionVisualizerImages; i++) { selectionVisualizers[i] = Resources.Load("RUIS/Graphics/Selection/visualizer" + (i + 1)) as Texture2D; } displayManager = FindObjectOfType(typeof(RUISDisplayManager)) as RUISDisplayManager; if (!gestureRecognizer) { Debug.LogWarning( typeof(RUISGestureRecognizer) + " component was not found for wand '" + name + "'." + "Add it if you want to use gesture-based selection."); } wandSelector = GetComponent<RUISWandSelector>(); if(!wandSelector) { Debug.LogError( typeof(RUISWandSelector) + " component was not found for wand '" + name + "'." + "Add it if you want to use gesture-based selection. Disabling wand."); this.enabled = false; } PlayerLost(); }
public void Start() { RUISInputManager inputManager = FindObjectOfType(typeof(RUISInputManager)) as RUISInputManager; if (inputManager) { if (switchToAvailableKinect) { if (bodyTrackingDevice == RUISSkeletonController.bodyTrackingDeviceType.Kinect1 && !inputManager.enableKinect && inputManager.enableKinect2) { bodyTrackingDevice = RUISSkeletonController.bodyTrackingDeviceType.Kinect2; } else if (bodyTrackingDevice == RUISSkeletonController.bodyTrackingDeviceType.Kinect2 && !inputManager.enableKinect2 && inputManager.enableKinect) { bodyTrackingDevice = RUISSkeletonController.bodyTrackingDeviceType.Kinect1; RUISHoldGestureRecognizer holdGestureRecognizer = GetComponent <RUISHoldGestureRecognizer>(); if (gestureRecognizer != holdGestureRecognizer) { gestureRecognizer.enabled = false; holdGestureRecognizer.enabled = true; gestureRecognizer = holdGestureRecognizer; Debug.LogWarning("Switched gesture recognizer of '" + name + "' to " + typeof(RUISHoldGestureRecognizer) + " because " + "Kinect 1 is enabled instead of Kinect 2, and at the moment that is the only supported Kinect 1 gesture."); gestureSelectionScriptName = holdGestureRecognizer.ToString(); } } else if (!inputManager.enableKinect2 && !inputManager.enableKinect) { Debug.LogWarning("Kinect 1 and 2 are not enabled in RUIS InputManager, disabling Skeleton Wand gameobject '" + name + "'."); gameObject.SetActive(false); } bodyTrackingDeviceID = (int)bodyTrackingDevice; } } }
public void Start() { RUISInputManager inputManager = FindObjectOfType(typeof(RUISInputManager)) as RUISInputManager; RUISHoldGestureRecognizer holdGestureRecognizer = GetComponent<RUISHoldGestureRecognizer>(); if(inputManager) { if(switchToAvailableKinect) { if( bodyTrackingDevice == RUISSkeletonController.bodyTrackingDeviceType.Kinect1 && !inputManager.enableKinect && inputManager.enableKinect2) { bodyTrackingDevice = RUISSkeletonController.bodyTrackingDeviceType.Kinect2; } else if( bodyTrackingDevice == RUISSkeletonController.bodyTrackingDeviceType.Kinect2 && !inputManager.enableKinect2 && inputManager.enableKinect) { bodyTrackingDevice = RUISSkeletonController.bodyTrackingDeviceType.Kinect1; if(gestureRecognizer != holdGestureRecognizer) // Switching to the only selection gesture that RUIS has for Kinect 1 { gestureRecognizer.enabled = false; holdGestureRecognizer.enabled = true; gestureRecognizer = holdGestureRecognizer; Debug.LogWarning( "Switched gesture recognizer of '" + name + "' to " + typeof(RUISHoldGestureRecognizer) + " because " + "Kinect 1 is enabled instead of Kinect 2, and at the moment that is the only supported Kinect 1 gesture."); gestureSelectionScriptName = holdGestureRecognizer.ToString(); } } else if(!inputManager.enableKinect2 && !inputManager.enableKinect) { Debug.LogWarning("Kinect 1 and 2 are not enabled in RUIS InputManager, disabling Skeleton Wand gameobject '" + name + "'."); gameObject.SetActive(false); } bodyTrackingDeviceID = (int)bodyTrackingDevice; } } if(gestureRecognizer == holdGestureRecognizer) { wandSelector.toggleSelection = true; wandSelector.grabWhileButtonDown = false; } else showVisualizer = false; // HACK: this is mainly for RUISFistGestureRecognizer. If other gestures are added, comment this line }