Beispiel #1
0
    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 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;
            }
        }
    }