Exemplo n.º 1
0
        void UpdateSkeletonImmediate(int PlayerIndex)
        {
            int curNum = 0;

            OrbbecUser user = BindPlayers[PlayerIndex].PlayerBindUser;

            if (user == null || user.UserID == 0 || !user.IsInConfidence())
            {
                return;
            }

            m_Wrapper.UpdateSkeletonImmediate(PlayerIndex,
                                              BindPlayers[PlayerIndex].PlayerBindUser.BoneWorldP3Pos,
                                              BindPlayers[PlayerIndex].GetGestureInfoPtr(), ref curNum);

            if (Param.GetStateCallback != null)
            {
                Param.GetStateCallback(PlayerIndex, BindPlayers[PlayerIndex]);
            }

            if (Param.IsGetVelocityData)
            {
                m_Wrapper.GetPlayerVelocityData(PlayerIndex, BindPlayers[PlayerIndex].SkeletonVelocityInfo);
            }
        }
Exemplo n.º 2
0
    public void SetUser(OrbbecUser user)
    {
        User = user;
        if (User == null ||
            !User.IsInConfidence())
        {
            gameObject.SetActive(false);
            return;
        }

        gameObject.SetActive(true);
    }
Exemplo n.º 3
0
        void UpdateSkeleton(int PlayerIndex)
        {
            OrbbecUser user = BindPlayers[PlayerIndex].PlayerBindUser;

            if (user == null || user.UserID == 0 || !user.IsInConfidence())
            {
                return;
            }

            if (!IsPosDataOK(ref user.BoneWorldP3Pos))
            {
                return;
            }

            //	Log.Print(Log.Level.Log, "Do UpdateSkeleton");
            //	Log.Print(Log.Level.Log, string.Format("lhand {0},{1},{2}", user.BoneWorldP3Pos[5].x, user.BoneWorldP3Pos[5].y, user.BoneWorldP3Pos[5].z));
            m_Wrapper.UpdateSkeleton(PlayerIndex, user.BoneWorldP3Pos);
        }
Exemplo n.º 4
0
        public bool BindPlayerUserID(int UserID, int PlayerIndex, bool IsForceBind)
        {
            bool IsAdd = true;

            if (PlayerIndex >= BindPlayers.Length)
            {
                return(false);
            }

            if (!IsForceBind &&
                (BindPlayers[PlayerIndex].PlayerBindUser != null &&
                 BindPlayers[PlayerIndex].PlayerBindUser.IsInConfidence()))
            {
                return(false);
            }

            OrbbecUser User = null;

            if (!OrbbecManager.Instance.TrackingUsers.TryGetValue(UserID, out User))
            {
                return(false);
            }

            if (!User.IsInConfidence())
            {
                return(false);
            }

            IsAdd = BindPlayers[PlayerIndex].PlayerBindUser == null ||
                    !BindPlayers[PlayerIndex].PlayerBindUser.IsInConfidence();

            BindPlayers[PlayerIndex].PlayerBindUser = User;
            m_Wrapper.SetPlayer(PlayerIndex, true);
            BindPlayers[PlayerIndex].IsPlayerUpdating = true;

            if (IsAdd)
            {
                ++m_BindPlayerNum;
            }

            return(true);
        }
Exemplo n.º 5
0
    private void _UpdateBody()
    {
        if (_obMgr == null || !_devMgr.HasInit)
        {
            return;
        }

        var users = _obMgr.TrackingUsers;

        var etor = users.GetEnumerator();

        if (_obUser == null)
        {
            while (etor.MoveNext())
            {
                if (etor.Current.Value != null && etor.Current.Key != 0)
                {
                    _obUser          = etor.Current.Value;
                    _userId          = etor.Current.Key;
                    _body.OrbbecUser = _obUser;
                    Debug.Log("检测到玩家,ID:" + _userId);
                    return;
                }
            }
        }
        else
        {
            while (etor.MoveNext())
            {
                if (etor.Current.Value == _obUser)
                {
                    return;
                }
            }
        }

        _obUser = null;
    }
Exemplo n.º 6
0
    // Update is called once per frame
    void Update()
    {
        if (FPSText != null)
        {
            FPSUpdateTime += Time.unscaledDeltaTime;
            if (FPSUpdateTime >= 1.0f && GestureManager.Instance != null)
            {
                FPSUpdateTime = 0.0f;

                FPSText.text = string.Format("MainFPS:{0},Gesture FPS:{1}", MainFPS.FPS, GestureManager.Instance.GetFPS());
            }
        }

        if (MsgText != null && Log.HasNewLogInBuffer)
        {
            MsgText.text = Log.GetBufferLogTotal();
        }
//
        if (GestureManager.Instance == null)
        {
            return;
        }

        BindedUserIDTabel.Clear();
        UnBindedIDIndexTabel.Clear();
        for (int i = 0; i < GestureManager.Instance.BindPlayers.Length; ++i)
        {
            if (GestureManager.Instance.BindPlayers[i].IsPlayerUpdating)
            {
                BindedUserIDTabel.Add(GestureManager.Instance.BindPlayers[i].PlayerBindUser.UserID);
                continue;
            }

            UnBindedIDIndexTabel.AddLast(i);
        }

        if (BindedUserIDTabel.Count >= GestureManager.Instance.BindPlayers.Length)
        {
            return;
        }

        Dictionary <int, OrbbecUser> .Enumerator Iter = OrbbecManager.Instance.TrackingUsers.GetEnumerator();

        while (Iter.MoveNext() && UnBindedIDIndexTabel.Count > 0)
        {
            OrbbecUser user = Iter.Current.Value;

            if (BindedUserIDTabel.Contains(user.UserID))
            {
                continue;
            }

            int unbindedIndex = UnBindedIDIndexTabel.First.Value;

            if (!GestureManager.Instance.BindPlayerUserID(user.UserID, unbindedIndex, false))
            {
                continue;
            }

            if (ShowSkeletonPositionController != null)
            {
                ShowSkeletonPositionController.UserDatas[unbindedIndex].SetUser(user);
            }

            UnBindedIDIndexTabel.RemoveFirst();
            Log.Print(Log.Level.Log, string.Format("GestureManager.AddUser({0}) To Index:{1}", Iter.Current.Value.UserID, unbindedIndex));
        }
    }