GetPlayer2ID() public méthode

public GetPlayer2ID ( ) : uint
Résultat uint
    // Update is called once per frame
    void Update()
    {
        if (manager == null)
        {
            manager = KinectManager.Instance;
        }

        // get the users texture
        if (manager && manager.IsInitialized())
        {
            //foregroundTex = manager.GetUsersLblTex();

            if (backgroundImage && (backgroundImage.sprite == null))
            {
                //backgroundImage.texture = manager.GetUsersClrTex();
                backgroundImage.sprite = Sprite.Create(manager.GetUsersClrTex(), new Rect(0, 0, manager.GetUsersClrTex().width, manager.GetUsersClrTex().height), Vector2.zero);
                backgroundImage.rectTransform.sizeDelta = new Vector2(manager.GetUsersClrTex().width, manager.GetUsersClrTex().height);
            }
        }

        if (manager.IsUserDetected())
        {
            uint[] userId = new uint[2] {
                manager.GetPlayer1ID(), manager.GetPlayer2ID()
            };

            // update colliders
            int numColliders = (int)KinectWrapper.NuiSkeletonPositionIndex.Count;

            for (int j = 0; j < 2; j++)
            {
                for (int i = 0; i < numColliders; i++)
                {
                    if (manager.IsJointTracked(userId[j], i))
                    {
                        Vector3 posJoint = manager.GetRawSkeletonJointPos(userId[j], i);

                        if (posJoint != Vector3.zero)
                        {
                            // convert the joint 3d position to depth 2d coordinates
                            Vector2 posDepth = manager.GetDepthMapPosForJointPos(posJoint);

                            float scaledX = posDepth.x * foregroundRect.width / KinectWrapper.Constants.DepthImageWidth;
                            float scaledY = posDepth.y * -foregroundRect.height / KinectWrapper.Constants.DepthImageHeight;

                            float screenX   = foregroundOfs.x + scaledX;
                            float screenY   = Camera.main.pixelHeight - (foregroundOfs.y + scaledY);
                            float zDistance = posJoint.z - Camera.main.transform.position.z;

                            Vector3 posScreen   = new Vector3(screenX, screenY, zDistance);
                            Vector3 posCollider = Camera.main.ScreenToWorldPoint(posScreen);

                            jointColliders[i + j * numColliders].transform.position = posCollider;
                        }
                    }
                }
            }
        }
    }
    // Make the defenders jump on the server side.
    public void Jump(uint userId, int usersCount)
    {
        KinectManager Manager = KinectManager.Instance;
        uint          user1Id = Manager.GetPlayer1ID();
        uint          user2Id = Manager.GetPlayer2ID();

        if (usersCount == 2)
        {
            if (userId == user1Id)
            {
                if (networkObject == null)
                {
                    for (int i = 0; i < 2; i++)
                    {
                        defendersOffline[i].GetComponent <DefenderMovement>().Jump();
                    }
                }
                else
                {
                    for (int i = 0; i < 2; i++)
                    {
                        defenders[i].gameObject.GetComponent <DefenderMovement>().Jump();
                    }
                }
            }
            else
            {
                if (networkObject == null)
                {
                    for (int i = 2; i < 4; i++)
                    {
                        defendersOffline[i].GetComponent <DefenderMovement>().Jump();
                    }
                }
                else
                {
                    for (int i = 2; i < 4; i++)
                    {
                        defenders[i].gameObject.GetComponent <DefenderMovement>().Jump();
                    }
                }
            }
        }
        else
        {
            foreach (DefenderBehavior d in defenders)
            {
                d.gameObject.GetComponent <DefenderMovement>().Jump();
            }
            foreach (GameObject d in defendersOffline)
            {
                d.GetComponent <DefenderMovement>().Jump();
            }
        }
    }
Exemple #3
0
    void DepthPlacement()
    {
        KinectManager manager = KinectManager.Instance;

        if (musicInterface && manager && manager.IsInitialized() && manager.IsUserDetected())
        {
            uint    userId2 = manager.GetPlayer2ID();
            Vector3 posUser = manager.GetUserPosition(userId2);


            zPos = posUser.z;
        }
    }
Exemple #4
0
    private void WaitForPlayers()
    {
        uint P1ID = manager.GetPlayer1ID();
        uint P2ID = manager.GetPlayer2ID();

        if (P1ID != 0 && P2ID != 0)
        {
            _state = GameStateEn.Starting;
        }
        else
        {
            Debug.Log("Waiting for Players");
        }
    }
Exemple #5
0
    void Update()
    {
        Vector3 dirJoints = Vector3.zero;

        RotationAxis = new Vector3(RotationAxisSource.position.x, RotationAxisSource.position.y, RotationAxisSource.position.z);
        if (player == "Player1")
        {
            dirJoints = kinectManager.GetDirectionBetweenJoints(kinectManager.GetPlayer1ID(), 1, 2, false, false);
        }
        else if (player == "Player2")
        {
            dirJoints = kinectManager.GetDirectionBetweenJoints(kinectManager.GetPlayer2ID(), 1, 2, false, false);
        }
        float roll = dirJoints.x * 100;

        transform.RotateAround(RotationAxis, Vector3.left, roll * Time.deltaTime / 2);
        float pitch = dirJoints.z * -100;

        transform.RotateAround(RotationAxis, Vector3.forward, pitch * Time.deltaTime / 2);
        transform.position = new Vector3(transform.position.x + roll * .001f, transform.position.y, transform.position.z - pitch * .001f);
        //print ("dirJoints " + dirJoints);
        //= Quaternion.Lerp (transform.rotation, newRotation, Time.deltaTime/2);
    }
Exemple #6
0
    void Update()
    {
        foregroundRect = new Rect(foregroundOfs.x, foregroundOfs.y, Screen.width, -Screen.height / divider);

        if (manager == null)
        {
            manager = KinectManager.Instance;
        }

        // get the users texture
        if (manager && manager.IsInitialized())
        {
            //foregroundTex = manager.GetUsersLblTex();
            if (backgroundImage && (backgroundImage.texture == null))
            {
                backgroundImage.texture = manager.GetUsersClrTex();
            }
        }

        if (manager.IsUserDetected())
        {
            uint userId = manager.GetPlayer1ID();

            //Player 2
            userId2 = manager.GetPlayer2ID();

            print(userId);
            print(userId2);



            // update colliders
            int numColliders = (int)KinectWrapper.NuiSkeletonPositionIndex.Count;

            for (int i = 0; i < numColliders; i++)
            {
                if (manager.IsJointTracked(userId, i))
                {
                    Vector3 posJoint = manager.GetRawSkeletonJointPos(userId, i);

                    if (posJoint != Vector3.zero)
                    {
                        // convert the joint 3d position to depth 2d coordinates
                        Vector2 posDepth = manager.GetDepthMapPosForJointPos(posJoint);

                        float scaledX = posDepth.x * foregroundRect.width / KinectWrapper.Constants.DepthImageWidth;
                        float scaledY = posDepth.y * -foregroundRect.height / KinectWrapper.Constants.DepthImageHeight;

                        float screenX   = foregroundOfs.x + scaledX;
                        float screenY   = Camera.main.pixelHeight - (foregroundOfs.y + scaledY);
                        float zDistance = posJoint.z - Camera.main.transform.position.z;

                        Vector3 posScreen   = new Vector3(screenX, screenY, zDistance);
                        Vector3 posCollider = Camera.main.ScreenToWorldPoint(posScreen);

                        jointColliders[i].transform.position = posCollider;
                    }
                }

                //player 2

                if (manager.IsJointTracked(userId2, i))
                {
                    Vector3 posJoint = manager.GetRawSkeletonJointPos(userId2, i);


                    if (posJoint != Vector3.zero)
                    {
                        // convert the joint 3d position to depth 2d coordinates
                        Vector2 posDepth = manager.GetDepthMapPosForJointPos(posJoint);

                        float scaledX = posDepth.x * foregroundRect.width / KinectWrapper.Constants.DepthImageWidth;
                        float scaledY = posDepth.y * -foregroundRect.height / KinectWrapper.Constants.DepthImageHeight;

                        float screenX   = foregroundOfs.x + scaledX;
                        float screenY   = Camera.main.pixelHeight - (foregroundOfs.y + scaledY);
                        float zDistance = posJoint.z - Camera.main.transform.position.z;

                        Vector3 posScreen   = new Vector3(screenX, screenY, zDistance);
                        Vector3 posCollider = Camera.main.ScreenToWorldPoint(posScreen);

                        jointColliders2[i].transform.position = posCollider;
                    }
                }
            }
        }
    }
Exemple #7
0
    public override void Process()
    {
        if (manager && manager.IsInitialized())
        {
            if (manager.IsUserDetected())
            {
                uint userId  = manager.GetPlayer1ID();
                uint user2Id = manager.GetPlayer2ID();

                if (manager.IsJointTracked(userId, (int)joint))
                {
                    // output the joint position for easy tracking
                    Vector3 jointPos = manager.GetJointPosition(userId, (int)joint);
                    HandPosition.x = accX * (jointPos.x * Screen.width) + decXP1;
                    HandPosition.y = accY * (jointPos.y * Screen.height) + decY;
                    HandPosition.z = 743;
                    //Debug.Log("HandTracking, x: " + jointPos.x.ToString() + "y :" + jointPos.y.ToString());
                    cursor1.gameObject.transform.position = HandPosition;

                    PointerEventData lookData = GetLookPointerEventData(HandPosition);
                    eventSystem.SetSelectedGameObject(null);
                    if (lookData.pointerCurrentRaycast.gameObject != null)
                    {
                        selectedObjOld = selectedObj;
                        selectedObj    = lookData.pointerCurrentRaycast.gameObject;
                        Debug.Log("Object selected : " + selectedObj.name);
                        //ExecuteEvents.ExecuteHierarchy(selectedObj, lookData, ExecuteEvents.submitHandler);
                        //ExecuteEvents.ExecuteHierarchy(go, lookData, ExecuteEvents.pointerUpHandler);
                    }

                    if (selectedObjOld == selectedObj)
                    {
                        if (staticTime + Time.deltaTime < selectTime)
                        {
                            staticTime += Time.deltaTime;
                        }
                        else
                        {
                            lookData = GetLookPointerEventData(HandPosition);
                            eventSystem.SetSelectedGameObject(null);
                            if (lookData.pointerCurrentRaycast.gameObject != null)
                            {
                                selectedObjOld = selectedObj;
                                selectedObj    = lookData.pointerCurrentRaycast.gameObject;
                                Debug.Log("Object selected : " + selectedObj.GetType());
                                ExecuteEvents.ExecuteHierarchy(selectedObj, lookData, ExecuteEvents.submitHandler);
                                //ExecuteEvents.ExecuteHierarchy(go, lookData, ExecuteEvents.pointerUpHandler);
                            }
                        }// TODO: Add SwipeUp and Down support : test selectedObj for slider
                    }
                    else
                    {
                        staticTime = 0;
                    }
                }

                if (user2Id != 0)
                {
                    if (manager.IsJointTracked(user2Id, (int)joint))
                    {
                        // output the joint position for easy tracking
                        Vector3 jointPos = manager.GetJointPosition(user2Id, (int)joint);
                        HandPosition2.x = accX * (jointPos.x * Screen.width) + decXP2;
                        HandPosition2.y = accY * (jointPos.y * Screen.height) + decY;
                        HandPosition2.z = 743;
                        //Debug.Log("HandTracking, x: " + jointPos.x.ToString() + "y :" + jointPos.y.ToString());
                        cursor2.gameObject.transform.position = HandPosition2;

                        PointerEventData lookData = GetLookPointerEventData(HandPosition2);
                        eventSystem.SetSelectedGameObject(null);
                        if (lookData.pointerCurrentRaycast.gameObject != null)
                        {
                            selectedObjOld2 = selectedObj2;
                            selectedObj2    = lookData.pointerCurrentRaycast.gameObject;
                            Debug.Log("Object selected : " + selectedObj2.name);
                            //ExecuteEvents.ExecuteHierarchy(selectedObj, lookData, ExecuteEvents.submitHandler);
                            //ExecuteEvents.ExecuteHierarchy(go, lookData, ExecuteEvents.pointerUpHandler);
                        }

                        if (selectedObjOld2 == selectedObj2)
                        {
                            if (staticTime2 + Time.deltaTime < selectTime)
                            {
                                staticTime2 += Time.deltaTime;
                            }
                            else
                            {
                                lookData = GetLookPointerEventData(HandPosition2);
                                eventSystem.SetSelectedGameObject(null);
                                if (lookData.pointerCurrentRaycast.gameObject != null)
                                {
                                    selectedObjOld2 = selectedObj2;
                                    selectedObj2    = lookData.pointerCurrentRaycast.gameObject;
                                    Debug.Log("Object selected : " + selectedObj2.name);
                                    ExecuteEvents.ExecuteHierarchy(selectedObj2, lookData, ExecuteEvents.submitHandler);
                                    //ExecuteEvents.ExecuteHierarchy(go, lookData, ExecuteEvents.pointerUpHandler);
                                }
                            }
                        } // TODO: Add SwipeUp and Down support : test selectedObj for slider
                        else
                        {
                            staticTime2 = 0;
                        }
                    }
                }
            }
        }
        else
        {
            manager = KinectManager.Instance;
        }
    }
    void Update()
    {
        KinectManager Manager = KinectManager.Instance;

        if (Manager && Manager.IsInitialized() && (Time.frameCount % interval == 0))
        {
            if (enablePreview && kinectPreview)
            {
                Texture2D tex    = Manager.GetUsersClrTex();
                Sprite    sprite = Sprite.Create(tex, new Rect(0.0f, 0.0f, tex.width, tex.height), new Vector2(0.5f, 0.5f));
                kinectPreview.sprite = sprite;
            }

            int iJointIndex = (int)TrackedJoint;
            if (Manager.IsUserDetected())
            {
                uint user1Id = Manager.GetPlayer1ID();
                uint user2Id = Manager.GetPlayer2ID();

                // Tracking user 1
                if (Manager.IsJointTracked(user1Id, iJointIndex))
                {
                    Vector3 posJoint = Manager.GetRawSkeletonJointPos(user1Id, iJointIndex);

                    if (posJoint != Vector3.zero)
                    {
                        // 3d position to depth
                        Vector2 posDepth = Manager.GetDepthMapPosForJointPos(posJoint);

                        // depth pos to color pos
                        Vector2 posColor = Manager.GetColorMapPosForDepthPos(posDepth);

                        //float scaleX = (float)posColor.x / KinectWrapper.Constants.ColorImageWidth;
                        //float scaleY = 1.0f - (float)posColor.y / KinectWrapper.Constants.ColorImageHeight;

                        if (TrackingMarker)
                        {
                            TrackingMarker.anchoredPosition = new Vector2(posColor.x - kinectPreview.rectTransform.rect.width, -posColor.y);
                        }

                        if (!isNetwork)
                        {
                            for (int i = 0; i < (Manager.IsJointTracked(user2Id, iJointIndex) ? 2 : 4); i++)
                            {
                                GameObject d    = defendersOffline[i];
                                float      newX = transform.position.x - posJoint.x + i + 0.5f - number / 2;
                                d.transform.position = Vector3.Lerp(d.transform.position, new Vector3(newX, d.transform.position.y, d.transform.position.z), smoothFactor * Time.deltaTime);
                            }
                        }
                        else
                        {
                            for (int i = 0; i < (Manager.IsJointTracked(user2Id, iJointIndex) ? 2 : 4); i++)
                            {
                                DefenderBehavior d    = defenders[i];
                                float            newX = transform.position.x - posJoint.x + i + 0.5f - number / 2;
                                d.gameObject.transform.position = Vector3.Lerp(
                                    d.gameObject.transform.position,
                                    new Vector3(newX,
                                                d.gameObject.transform.position.y,
                                                d.gameObject.transform.position.z),
                                    smoothFactor * Time.deltaTime);
                            }
                        }
                    }
                }
                // Tracking user 2
                if (Manager.IsJointTracked(user2Id, iJointIndex))
                {
                    Vector3 posJoint = Manager.GetRawSkeletonJointPos(user2Id, iJointIndex);
                    if (posJoint != Vector3.zero)
                    {
                        // 3d position to depth
                        Vector2 posDepth = Manager.GetDepthMapPosForJointPos(posJoint);

                        // depth pos to color pos
                        Vector2 posColor = Manager.GetColorMapPosForDepthPos(posDepth);

                        if (TrackingMarker2)
                        {
                            TrackingMarker2.anchoredPosition = new Vector2(posColor.x - kinectPreview.rectTransform.rect.width, -posColor.y);
                        }

                        if (!isNetwork)
                        {
                            for (int i = 2; i < 4; i++)
                            {
                                GameObject d           = defendersOffline[i];
                                Vector3    newPosition = defendersOffline[i].transform.position;
                                newPosition.x        = transform.position.x - posJoint.x;
                                newPosition.x       += i - number / 2;
                                d.transform.position = Vector3.Lerp(d.transform.position, newPosition, smoothFactor * Time.deltaTime);
                            }
                        }
                        else
                        {
                            for (int i = 2; i < 4; i++)
                            {
                                DefenderBehavior d    = defenders[i];
                                float            newX = transform.position.x - posJoint.x + i - number / 2;
                                d.gameObject.transform.position = Vector3.Lerp(
                                    d.gameObject.transform.position,
                                    new Vector3(newX,
                                                d.gameObject.transform.position.y,
                                                d.gameObject.transform.position.z),
                                    smoothFactor * Time.deltaTime);
                            }
                        }
                    }
                }
            }
        }
    }
Exemple #9
0
    // Update is called once per frame
    void Update()
    {
        KinectManager manager = KinectManager.Instance;

        // get 1st player or 2nd player
        if (playerIDchoice == 0)
        {
            playerID = manager != null?manager.GetPlayer1ID() : 0;
        }
        else if (playerIDchoice == 1)
        {
            playerID = manager != null?manager.GetPlayer2ID() : 0;
        }

        if (playerID <= 0)
        {
            // reset the pointman position and rotation
            if (transform.position != initialPosition)
            {
                transform.position = initialPosition;
            }

            if (transform.rotation != initialRotation)
            {
                transform.rotation = initialRotation;
            }

            for (int i = 0; i < bones.Length; i++)
            {
                bones[i].gameObject.SetActive(true);

                bones[i].transform.localPosition = Vector3.zero;
                bones[i].transform.localRotation = Quaternion.identity;

                if (SkeletonLine)
                {
                    lines[i].gameObject.SetActive(false);
                }
            }

            return;
        }

        // set the user position in space
        Vector3 posPointMan = manager.GetUserPosition(playerID);

        posPointMan.z = !MirroredMovement ? -posPointMan.z : posPointMan.z;

        // store the initial position
        if (initialPosUserID != playerID)
        {
            initialPosUserID = playerID;
            initialPosOffset = transform.position - (MoveVertically ? posPointMan : new Vector3(posPointMan.x, 0, posPointMan.z));
        }

        transform.position = initialPosOffset + (MoveVertically ? posPointMan : new Vector3(posPointMan.x, 0, posPointMan.z));

        // update the local positions of the bones
        for (int i = 0; i < bones.Length; i++)
        {
            if (bones[i] != null)
            {
                int joint = MirroredMovement ? KinectWrapper.GetSkeletonMirroredJoint(i): i;

                if (manager.IsJointTracked(playerID, joint))
                {
                    bones[i].gameObject.SetActive(true);

                    Vector3 posJoint = manager.GetJointPosition(playerID, joint);
                    posJoint.z = !MirroredMovement ? -posJoint.z : posJoint.z;

                    Quaternion rotJoint = manager.GetJointOrientation(playerID, joint, !MirroredMovement);
                    rotJoint = initialRotation * rotJoint;

                    posJoint -= posPointMan;

                    if (MirroredMovement)
                    {
                        posJoint.x = -posJoint.x;
                        posJoint.z = -posJoint.z;
                    }

                    bones[i].transform.localPosition = posJoint;
                    bones[i].transform.rotation      = rotJoint;
                }
                else
                {
                    bones[i].gameObject.SetActive(false);
                }
            }
        }

        if (SkeletonLine)
        {
            for (int i = 0; i < bones.Length; i++)
            {
                bool bLineDrawn = false;

                if (bones[i] != null)
                {
                    if (bones[i].gameObject.activeSelf)
                    {
                        Vector3 posJoint = bones[i].transform.position;

                        int     parI      = parIdxs[i];
                        Vector3 posParent = bones[parI].transform.position;

                        if (bones[parI].gameObject.activeSelf)
                        {
                            lines[i].gameObject.SetActive(true);

                            //lines[i].SetVertexCount(2);
                            lines[i].SetPosition(0, posParent);
                            lines[i].SetPosition(1, posJoint);

                            bLineDrawn = true;
                        }
                    }
                }

                if (!bLineDrawn)
                {
                    lines[i].gameObject.SetActive(false);
                }
            }
        }
    }