Ejemplo n.º 1
0
    void Update()
    {
        if (!saverPlayer)
        {
            return;
        }

        bool bPlayerActive = saverPlayer.IsPlaying();

        if (bPlayerActive)
        {
            if (KinectInterop.PollBodyFrame(sensorData, ref bodyFrame, ref kinectToWorld, false))
            {
                for (int i = 0; i < sensorData.bodyCount; i++)
                {
                    if (bodyFrame.bodyData [i].bIsTracked != 0)
                    {
                        lastUserTime = Time.realtimeSinceStartup;
                        break;
                    }
                }

                lock (sensorData.bodyFrameLock)
                {
                    sensorData.bodyFrameReady = false;
                }
            }
        }
        else
        {
            if (KinectManager.Instance.GetUsersCount() > 0)
            {
                lastUserTime = Time.realtimeSinceStartup;
            }
        }

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

        if (!bPlayerActive && !bUserFound)
        {
            saverPlayer.StartPlaying();
        }
        else if (bPlayerActive && bUserFound)
        {
            saverPlayer.StopRecordingOrPlaying();
            KinectManager.Instance.ClearKinectUsers();
        }
    }