public void RefreshBodyObject(User user)//Kinect.Body body, GameObject bodyObject)
    {
        if (Application.isPlaying && showSkeletons)
        {
            KinectSkeleton skeleton = GetKinectSkeleton(user.skeletonID);
            if (skeleton != null && (skeleton.valid))
            {
                for (int i = 0; i < skeleton.jointPositions3D.Length; i++)
                {
                    KinectSkeleton.TrackingState state = skeleton.jointStates[i];
                    bool tracked = state != KinectSkeleton.TrackingState.NotTracked;
                    //JointMaterial = joints[i].GetComponent<Renderer>().material;
                    //JointMaterial.color = GetColorForState(state);
                    if (tracked)
                    {
                        joints[i].localPosition = skeleton.jointPositions3D[i];
                    }
                }

                for (int k = 0; k < HumanTopology.BONE_CONNECTIONS.Length; k++)
                {
                    BoneConnection bone   = HumanTopology.BONE_CONNECTIONS[k];
                    JointType      joint1 = bone.fromJoint;
                    JointType      joint2 = bone.toJoint;
                    LineRenderer   lr     = joints[(int)joint2].GetComponent <LineRenderer>();

                    lr.SetPosition(0, joints[(int)joint1].position);
                    lr.SetPosition(1, joints[(int)joint2].position);
                }

                /*for (int i = 0; i < HumanTopology.BONE_CONNECTIONS.Length; i++)
                 * {
                 *  BoneConnection bone = HumanTopology.BONE_CONNECTIONS[i];
                 *  JointType joint1 = bone.fromJoint;
                 *  JointType joint2 = bone.toJoint;
                 *  KinectSkeleton.TrackingState state1 = skeleton.jointStates[(int)joint1];
                 *  KinectSkeleton.TrackingState state2 = skeleton.jointStates[(int)joint2];
                 *  LineRenderer lr = joints[i].GetComponent<LineRenderer>();
                 *  bool tracked = state1 != KinectSkeleton.TrackingState.NotTracked && state2 != KinectSkeleton.TrackingState.NotTracked;
                 *  if (tracked)
                 *  {
                 *      lr.SetPosition(0, skeleton.jointPositions3D[(int)joint1]);
                 *      lr.SetPosition(1, skeleton.jointPositions3D[(int)joint2]);
                 *
                 *      lr.startColor = GetColorForState(state1);
                 *      lr.endColor = GetColorForState(state2);
                 *  }
                 *
                 * }*/
            }
        }
    }
    private static Color GetColorForState(KinectSkeleton.TrackingState state)
    {
        switch (state)
        {
        case KinectSkeleton.TrackingState.Tracked:
            return(Color.green);

        case KinectSkeleton.TrackingState.Inferred:
            return(Color.red);

        default:
            return(Color.black);
        }
    }