示例#1
0
    void Start()
    {
        KinectManager kinectManager = KinectManager.Instance;

        if (kinectManager)
        {
            // remove all users, filters and avatar controllers
            kinectManager.avatarControllers.Clear();
            kinectManager.ClearKinectUsers();

            // get the mono scripts. avatar controllers and gesture listeners are among them
            MonoBehaviour[] monoScripts = FindObjectsOfType(typeof(MonoBehaviour)) as MonoBehaviour[];

            // locate the available avatar controllers
            foreach (MonoBehaviour monoScript in monoScripts)
            {
//				if(typeof(AvatarController).IsAssignableFrom(monoScript.GetType()) &&
//				   monoScript.enabled)
                if ((monoScript is AvatarController) && monoScript.enabled)
                {
                    AvatarController avatar = (AvatarController)monoScript;
                    kinectManager.avatarControllers.Add(avatar);
                }
            }

            // locate Kinect gesture manager, if any
            kinectManager.gestureManager = null;
            foreach (MonoBehaviour monoScript in monoScripts)
            {
//				if(typeof(KinectGestures).IsAssignableFrom(monoScript.GetType()) &&
//				   monoScript.enabled)
                if ((monoScript is KinectGestures) && monoScript.enabled)
                {
                    kinectManager.gestureManager = (KinectGestures)monoScript;
                    break;
                }
            }

            // locate the available gesture listeners
            kinectManager.gestureListeners.Clear();

            foreach (MonoBehaviour monoScript in monoScripts)
            {
//				if(typeof(KinectGestures.GestureListenerInterface).IsAssignableFrom(monoScript.GetType()) &&
//				   monoScript.enabled)
                if ((monoScript is KinectGestures.GestureListenerInterface) && monoScript.enabled)
                {
                    //KinectGestures.GestureListenerInterface gl = (KinectGestures.GestureListenerInterface)monoScript;
                    kinectManager.gestureListeners.Add(monoScript);
                }
            }

            // check for gesture manager
            if (kinectManager.gestureListeners.Count > 0 && kinectManager.gestureManager == null)
            {
                Debug.Log("Found " + kinectManager.gestureListeners.Count + " gesture listener(s), but no gesture manager in the scene. Adding KinectGestures-component...");
                kinectManager.gestureManager = kinectManager.gameObject.AddComponent <KinectGestures>();
            }
        }
    }
示例#2
0
    void Start()
    {
        KinectManager manager = KinectManager.Instance;

        if (manager)
        {
            manager.Player1Avatars.Clear();
            manager.Player2Avatars.Clear();

            AvatarController[] avatars = FindObjectsOfType(typeof(AvatarController)) as AvatarController[];

            foreach (AvatarController avatar in avatars)
            {
                manager.Player1Avatars.Add(avatar.gameObject);
            }

            manager.ResetAvatarControllers();
            manager.ClearKinectUsers();

            // add available gesture listeners
            manager.gestureListeners.Clear();

            MonoBehaviour[] listeners = FindObjectsOfType(typeof(MonoBehaviour)) as MonoBehaviour[];

            foreach (MonoBehaviour listener in listeners)
            {
                if (typeof(KinectGestures.GestureListenerInterface).IsAssignableFrom(listener.GetType()))
                {
                    KinectGestures.GestureListenerInterface gl = (KinectGestures.GestureListenerInterface)listener;
                    manager.gestureListeners.Add(gl);
                }
            }
        }
    }
示例#3
0
        void Update()
        {
            if (!kinectManager || !saverPlayer || sensorData == null)
            {
                return;
            }

            // check if the body-data is playing
            bool bPlayerActive = saverPlayer.IsPlaying();

            // check for users while playing
            if (sensorData.trackedBodiesCount > 0)
            {
                lastUserTime = Time.realtimeSinceStartup;
            }

            bool bUserFound = (Time.realtimeSinceStartup - lastUserTime) < userLostMaxTime;

            if (!bPlayerActive && !bUserFound)
            {
                saverPlayer.StartPlaying();
            }
            else if (bPlayerActive && bUserFound)
            {
                saverPlayer.StopRecordingOrPlaying();
                kinectManager.ClearKinectUsers();
            }
        }
示例#4
0
    public void UserLost(uint userId, int userIndex)
    {
        KinectManager manager = KinectManager.Instance;

        GestureInfo.text = "User lost";
        players.Remove(userId);
        manager.Player1Avatars = new List <GameObject>();
        manager.Player2Avatars = new List <GameObject>();
        manager.ClearKinectUsers();
        manager.ResetAvatarControllers();
        DefenderManager.ResetDebugTracker();
    }
    void Start()
    {
        KinectManager manager = KinectManager.Instance;

        if (manager)
        {
            // remove all users, filters and avatar controllers
            manager.avatarControllers.Clear();
            manager.ClearKinectUsers();

            // get the mono scripts. avatar controllers and gesture listeners are among them
            MonoBehaviour[] monoScripts = FindObjectsOfType(typeof(MonoBehaviour)) as MonoBehaviour[];

            // locate the available avatar controllers
            foreach (MonoBehaviour monoScript in monoScripts)
            {
//				if(typeof(AvatarController).IsAssignableFrom(monoScript.GetType()) &&
//				   monoScript.enabled)
                if ((monoScript is AvatarController) && monoScript.enabled)
                {
                    AvatarController avatar = (AvatarController)monoScript;
                    manager.avatarControllers.Add(avatar);
                }
            }

            // locate Kinect gesture manager, if any
            manager.gestureManager = null;
            foreach (MonoBehaviour monoScript in monoScripts)
            {
//				if(typeof(KinectGestures).IsAssignableFrom(monoScript.GetType()) &&
//				   monoScript.enabled)
                if ((monoScript is KinectGestures) && monoScript.enabled)
                {
                    manager.gestureManager = (KinectGestures)monoScript;
                    break;
                }
            }

            // locate the available gesture listeners
            manager.gestureListeners.Clear();

            foreach (MonoBehaviour monoScript in monoScripts)
            {
//				if(typeof(KinectGestures.GestureListenerInterface).IsAssignableFrom(monoScript.GetType()) &&
//				   monoScript.enabled)
                if ((monoScript is KinectGestures.GestureListenerInterface) && monoScript.enabled)
                {
                    //KinectGestures.GestureListenerInterface gl = (KinectGestures.GestureListenerInterface)monoScript;
                    manager.gestureListeners.Add(monoScript);
                }
            }
        }
    }
    void Start()
    {
        KinectManager manager = KinectManager.Instance;

        if (manager)
        {
            manager.ClearKinectUsers();

            AvatarController[] avatars = FindObjectsOfType(typeof(AvatarController)) as AvatarController[];

            foreach (AvatarController avatar in avatars)
            {
                manager.avatarControllers.Add(avatar);
            }
        }
    }
示例#7
0
        void Start()
        {
            KinectManager kinectManager = KinectManager.Instance;

            if (kinectManager)
            {
                // remove all users & filters
                kinectManager.ClearKinectUsers();

                // refresh gesture listeners
                KinectGestureManager gestureManager = kinectManager.gestureManager;
                if (gestureManager)
                {
                    gestureManager.RefreshGestureListeners();
                }
            }
        }
示例#8
0
    IEnumerator WaitForKinect()
    {
        Debug.Log("Waiting for Kinect");
        calibrationImage.fillAmount    = 0;
        calibrationCompletionRate.text = (Mathf.CeilToInt(calibrationImage.fillAmount * 100)).ToString() + "%";
        kinectMan.ClearKinectUsers();
        bool calibrateKinect = true;

        //kinectWaitingScreen.SetActive(true);
        //kinect.StartAcquiringTargetBody();

#if ENABLE_CALIBRATION
        yield return(new WaitUntil(() => kinectMan.IsUserDetected()));
#endif
        while (calibrationImage.fillAmount < 1f)
        {
#if ENABLE_CALIBRATION
            calibrateKinect = kinectMan.IsUserDetected();
#endif
            if (!calibrateKinect)
            {
                Debug.Log("Break waiting for Kinect coroutine");
                //set fill to 0;
                //restart calibration in 0.5s;
                startCalibration();
                calibrationImage.DOFillAmount(0.0f, 0.2f);
                calibrationText.text = "CALIBRATION WAS INTERRUPTED!";
                yield break;
            }
            if (calibrationImage != null)
            {
                calibrationImage.fillAmount = calibrationImage.fillAmount + 0.01f;
                calibrationImage.color      = Color.Lerp(Color.white, new Color(1.0f, 1.0f, 1.0f), calibrationImage.fillAmount);
            }
            calibrationCompletionRate.text = (Mathf.CeilToInt(calibrationImage.fillAmount * 100)).ToString() + "%";
            if (calibrationText != null)
            {
                calibrationText.text = calibrationImage.fillAmount < 0.3f ? "IN PROGRESS..." :
                                       calibrationImage.fillAmount < 0.5f ? "HALFWAY THERE!" :
                                       calibrationImage.fillAmount < 0.95f ? "JUST A LITTLE MORE!" : "COMPLETED!";
            }

            yield return(new WaitForSeconds(0.02f));
        }

        if (calibrationImageParent != null)
        {
            calibrationImageParent.transform.DOPunchScale(new Vector3(0.1f, 0.1f), 0.5f, 5, 0.5f);
        }
        //if (calibrationText != null)
        //    calibrationText.transform.DOLocalJump(calibrationText.transform.localPosition, 100f, 1, 0.4f);

        TrinaxManager.trinaxAudioManager.PlayUISFX(TrinaxAudioManager.AUDIOS.CALIBRATION_DONE, TrinaxAudioManager.AUDIOPLAYER.UI_SFX);

        yield return(new WaitForSeconds(1.5f));

        CalibrationCanvas.DOFade(0, 0.2f).OnComplete(() =>
        {
            CalibrationCanvas.blocksRaycasts = false;
            CalibrationCanvas.gameObject.SetActive(false);
        });

        yield return(new WaitForSeconds(0.65f));

        Debug.Log("Calibration Complete");
        calibrated = true;
        GameStarting?.Invoke();
    }