Esempio n. 1
0
    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();
    }
Esempio n. 2
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
        }
    }
Esempio n. 3
0
    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;
            }
        }
    }
Esempio n. 5
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
    }