Beispiel #1
0
    public void CloseOnWaving(nuitrack.GestureData gestures)
    {
        foreach (nuitrack.Gesture gesture in gestures.Gestures)
        {
            if (gesture.Type == nuitrack.GestureType.GestureWaving)
            {
                if (dialogIndex % 2 == 0)
                {
                    dialogTextLeft.text = "You have skipped the tutorial";
                    leftImage.enabled   = true;

                    dialogTextRight.text = "";
                    rightImage.enabled   = false;
                }
                else
                {
                    dialogTextRight.text = "You have skipped the tutorial";
                    rightImage.enabled   = true;

                    dialogTextLeft.text = "";
                    leftImage.enabled   = false;
                }

                Invoke("LoadMainMenu", 5f);
            }
        }
    }
    void Update()
    {
#if UNITY_ANDROID && !UNITY_EDITOR
        if (IsNuitrackLibrariesInitialized())
#endif
        if (nuitrackError)
        {
            return;
        }

        if (!pauseState || (asyncInit && _threadRunning))
        {
            try
            {
                Users.UpdateData(skeletonData, handTrackerData, gestureData, NuitrackJson);

                if (gestureData != null)
                {
                    gestureData.Dispose();
                    gestureData = null;
                }

                nuitrack.Nuitrack.Update();
            }
            catch (System.Exception ex)
            {
                NuitrackErrorSolver.CheckError(ex, true, false);
                if (ex.ToString().Contains("LicenseNotAcquiredException"))
                {
                    nuitrackError = true;
                }
            }
        }
    }
    void OnNewGestures(nuitrack.GestureData gestures)
    {
        if (gestureData != null)
        {
            gestureData.Dispose();
        }

        gestureData = (nuitrack.GestureData)gestures.Clone();

        if (gestures.NumGestures > 0)
        {
            if (onNewGesture != null)
            {
                try
                {
                    for (int i = 0; i < gestures.Gestures.Length; i++)
                    {
                        onNewGesture(gestures.Gestures[i]);
                    }
                }
                catch (Exception ex)
                {
                    Debug.LogException(ex);
                }
            }
        }
    }
 void Update()
 {
     if (nuitrackModules.GesturesData != null)
     {
         if (gesturesData != nuitrackModules.GesturesData)
         {
             gesturesData = nuitrackModules.GesturesData;
             ProcessGesturesData(gesturesData);
         }
     }
 }
Beispiel #5
0
 private void OnNewGestures(nuitrack.GestureData gestures)
 {
     if (gestures.NumGestures > 0)
     {
         if (onNewGesture != null)
         {
             for (int i = 0; i < gestures.Gestures.Length; i++)
             {
                 onNewGesture(gestures.Gestures[i]);
             }
         }
     }
 }
 void ProcessGesturesData(nuitrack.GestureData data)
 {
     if (data.NumGestures > 0)
     {
         for (int i = 0; i < data.Gestures.Length; i++)
         {
             string newEntry =
                 "User " + data.Gestures[i].UserID + ": " +
                 Enum.GetName(typeof(nuitrack.GestureType), (int)data.Gestures[i].Type);
             exceptionsLogger.AddEntry(newEntry);
         }
     }
 }
 private void AttendGestures(nuitrack.GestureData gestures)
 {
     if (isNextGestureTrackedByNuitrack && !isMoreThanOneUser)
     {
         foreach (nuitrack.Gesture gesture in gestures.Gestures)
         {
             if (gesture.Type == targetNuitrackGesture)
             {
                 OnNewGoal();
                 SelectNewGesture();
                 break;
             }
         }
     }
 }
 void GesturesUpdate(nuitrack.GestureData _gestureUpdateData)
 {
     gesturesData = _gestureUpdateData;
 }
    public void ChangeModules(bool depthOn, bool colorOn, bool userOn, bool skeletonOn, bool handsOn, bool gesturesOn)
    {
        try
        {
            //      if (depthSensor != null) depthSensor.OnUpdateEvent -= DepthUpdate;
            //      if (userTracker != null) userTracker.OnUpdateEvent -= UserUpdate;
            //      if (skeletonTracker != null) skeletonTracker.OnSkeletonUpdateEvent -= SkeletonsUpdate;
            //      if (handTracker != null) handTracker.OnUpdateEvent -= HandTrackerUpdate;
            //      if (gestureRecognizer != null) gestureRecognizer.OnNewGesturesEvent -= GesturesUpdate;

            //*
            if (!nuitrackInitialized)
            {
            #if UNITY_IOS
                nuitrack.Nuitrack.Init("", nuitrack.Nuitrack.NuitrackMode.DEBUG);
            #else
                nuitrack.Nuitrack.Init();
            #endif
                Debug.Log("init ok");
                depthSensorInit       = nuitrack.DepthSensor.Create();
                colorSensorInit       = nuitrack.ColorSensor.Create();
                userTrackerInit       = nuitrack.UserTracker.Create();
                skeletonTrackerInit   = nuitrack.SkeletonTracker.Create();
                handTrackerInit       = nuitrack.HandTracker.Create();
                gestureRecognizerInit = nuitrack.GestureRecognizer.Create();

                nuitrack.Nuitrack.Run();
                Debug.Log("run ok");
                nuitrackInitialized = true;
            }
//			*/

            depthFrame      = null;
            colorFrame      = null;
            userFrame       = null;
            skeletonData    = null;
            handTrackerData = null;
            gesturesData    = null;
            //
            //      depthSensor = null;
            //      userTracker = null;
            //      skeletonTracker = null;
            //      handTracker = null;
            //      gestureRecognizer = null;

            //if (issuesProcessor != null) Destroy(issuesProcessor);

            if (prevDepth != depthOn)
            {
                prevDepth = depthOn;
                if (depthOn)
                {
                    depthSensor = depthSensorInit;
                    depthSensorInit.OnUpdateEvent += DepthUpdate;
                }
                else
                {
                    depthSensorInit.OnUpdateEvent -= DepthUpdate;
                    depthSensor = null;
                }
            }

            if (prevColor != colorOn)
            {
                prevColor = colorOn;
                if (colorOn)
                {
                    colorSensor = colorSensorInit;
                    colorSensorInit.OnUpdateEvent += ColorUpdate;
                }
                else
                {
                    colorSensorInit.OnUpdateEvent -= ColorUpdate;
                    colorSensor = null;
                }
            }

            if (prevUser != userOn)
            {
                prevUser = userOn;
                if (userOn)
                {
                    userTracker = userTrackerInit;
                    userTrackerInit.OnUpdateEvent += UserUpdate;
                }

                else
                {
                    userTrackerInit.OnUpdateEvent -= UserUpdate;
                    userTracker = null;
                }
            }

            if (skeletonOn != prevSkel)
            {
                prevSkel = skeletonOn;
                if (skeletonOn)
                {
                    skeletonTracker = skeletonTrackerInit;
                    skeletonTrackerInit.OnSkeletonUpdateEvent += SkeletonsUpdate;
                }
                else
                {
                    skeletonTrackerInit.OnSkeletonUpdateEvent -= SkeletonsUpdate;
                    skeletonTracker = null;
                }
            }

            if (prevHand != handsOn)
            {
                prevHand = handsOn;
                if (handsOn)
                {
                    handTracker = handTrackerInit;
                    handTrackerInit.OnUpdateEvent += HandTrackerUpdate;
                }
                else
                {
                    handTrackerInit.OnUpdateEvent -= HandTrackerUpdate;
                    handTracker = null;
                }
            }

            if (prevGesture != gesturesOn)
            {
                prevGesture = gesturesOn;
                if (gesturesOn)
                {
                    gestureRecognizer = gestureRecognizerInit;
                    gestureRecognizerInit.OnNewGesturesEvent += GesturesUpdate;
                }
                else
                {
                    gestureRecognizerInit.OnNewGesturesEvent -= GesturesUpdate;
                    gestureRecognizer = null;
                }
            }
            //issuesProcessor = (GameObject)Instantiate(issuesProcessorPrefab);
        }
        catch (Exception ex)
        {
            exceptionsLogger.AddEntry(ex.ToString());
        }
    }
    private void InitTrackers(bool depthOn, bool colorOn, bool userOn, bool skeletonOn, bool handsOn, bool gesturesOn)
    {
        if (!nuitrackInitialized)
        {
            nuitrack.Nuitrack.Init();
            Debug.Log("init ok");
            depthSensorInit       = nuitrack.DepthSensor.Create();
            colorSensorInit       = nuitrack.ColorSensor.Create();
            userTrackerInit       = nuitrack.UserTracker.Create();
            skeletonTrackerInit   = nuitrack.SkeletonTracker.Create();
            handTrackerInit       = nuitrack.HandTracker.Create();
            gestureRecognizerInit = nuitrack.GestureRecognizer.Create();

            nuitrack.Nuitrack.Run();
            Debug.Log("run ok");
            nuitrackInitialized = true;
        }

        depthFrame      = null;
        colorFrame      = null;
        userFrame       = null;
        skeletonData    = null;
        handTrackerData = null;
        gesturesData    = null;
        //
        //      depthSensor = null;
        //      userTracker = null;
        //      skeletonTracker = null;
        //      handTracker = null;
        //      gestureRecognizer = null;

        //if (issuesProcessor != null) Destroy(issuesProcessor);

        if (prevDepth != depthOn)
        {
            prevDepth = depthOn;
            if (depthOn)
            {
                depthSensor = depthSensorInit;
                depthSensorInit.OnUpdateEvent += DepthUpdate;
            }
            else
            {
                depthSensorInit.OnUpdateEvent -= DepthUpdate;
                depthSensor = null;
            }
        }

        if (prevColor != colorOn)
        {
            prevColor = colorOn;
            if (colorOn)
            {
                colorSensor = colorSensorInit;
                colorSensorInit.OnUpdateEvent += ColorUpdate;
            }
            else
            {
                colorSensorInit.OnUpdateEvent -= ColorUpdate;
                colorSensor = null;
            }
        }

        if (prevUser != userOn)
        {
            prevUser = userOn;
            if (userOn)
            {
                userTracker = userTrackerInit;
                userTrackerInit.OnUpdateEvent += UserUpdate;
            }

            else
            {
                userTrackerInit.OnUpdateEvent -= UserUpdate;
                userTracker = null;
            }
        }

        if (skeletonOn != prevSkel)
        {
            prevSkel = skeletonOn;
            if (skeletonOn)
            {
                skeletonTracker = skeletonTrackerInit;
                skeletonTrackerInit.OnSkeletonUpdateEvent += SkeletonsUpdate;
            }
            else
            {
                skeletonTrackerInit.OnSkeletonUpdateEvent -= SkeletonsUpdate;
                skeletonTracker = null;
            }
        }

        if (prevHand != handsOn)
        {
            prevHand = handsOn;
            if (handsOn)
            {
                handTracker = handTrackerInit;
                handTrackerInit.OnUpdateEvent += HandTrackerUpdate;
            }
            else
            {
                handTrackerInit.OnUpdateEvent -= HandTrackerUpdate;
                handTracker = null;
            }
        }

        if (prevGesture != gesturesOn)
        {
            prevGesture = gesturesOn;
            if (gesturesOn)
            {
                gestureRecognizer = gestureRecognizerInit;
                gestureRecognizerInit.OnNewGesturesEvent += GesturesUpdate;
            }
            else
            {
                gestureRecognizerInit.OnNewGesturesEvent -= GesturesUpdate;
                gestureRecognizer = null;
            }
        }

        StopThread();
    }
 private void OnNewGestures(nuitrack.GestureData gestures)
 {
     // do nothing
 }