Ejemplo n.º 1
0
 public void GenerateDefenders()
 {
     RemoveDefenders();
     defenders = new DefenderBehavior[4];
     for (int x = 0; x < number; x++)
     {
         // Instantiate a new Defender Network Object.
         DefenderBehavior def = NetworkManager.Instance.InstantiateDefender(
             0,
             new Vector3(
                 transform.position.x + 0.5f - number / 2,
                 0,
                 transform.position.z - 4),
             Quaternion.Euler(0, 180, 0)
             );
         defenders[x] = def;
     }
 }
Ejemplo n.º 2
0
    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);
                            }
                        }
                    }
                }
            }
        }
    }