void Update()
{
for (int i = 0; i < IKtransforms.Count; i++) {
if(i == 0) {
lbl = IKlabels[0];
} else {
lbl = IKlabels[0] + "_" + IKlabels[i];
}
Vector3 pos = stream.getRigidBodyPosData (lbl);
Quaternion rot = stream.getRigidBodyRotData (lbl);
if (pos == Vector3.zero) {
untracked_time += Time.deltaTime;
IKtransforms[i] = IKtransforms_old[i];
} else {
if (true||(Vector3.Distance(IKtransforms[i].localPosition, IKtransforms[0].localPosition) < max_dist_to_head &&
Vector3.Distance(IKtransforms[i].localPosition, IKtransforms_old[i].localPosition) < max_delta_dist * untracked_time)) {
IKtransforms[i].localPosition = pos;
IKtransforms[i].localRotation = rot;
IKtransforms_old[i] = IKtransforms[i];
untracked_time = 0;
} else {
untracked_time += Time.deltaTime;
IKtransforms[i] = IKtransforms_old[i];
}
}
}
}