- Home /
5.1 Interpolation on child rigidbody2d is causing the object to move slower than parent.
I have interpolation set on a rigidbody2D that is kinemetic. It is a child of an object that does not have a rigidbody2d and is being moved with like so...
void Update () { currentPos = transform.position;
currentPos += (randDir * Time.deltaTime);
transform.position = currentPos;
}
The child objects with the rigidbody2d component are moving much slower than the parent object. This is causing huge issues for me. What am I doing wrong?
I have come up with a solution that fits me, hopefully it works for some other people. I leave interpolate on the main rigidbody object. Once he hits an object that breaks a part, i set interpolate on the broken shards as well. As they are despawned I reset their inerpolation to none.
Answer by dasbin · Jun 11, 2015 at 02:31 AM
I have the same issue since updating to 5.1. You're not doing anything wrong. There's clearly a new bug with interpolation on kinematic Ridigbody2D's in 5.1.
Answer by tayloreichhorst · Jun 11, 2015 at 01:40 PM
Sorry to hear the problem is plaguing you too. I have since gone a different route which is equally as annoying, but better for performance. I have taken interpolate off of those items, and started trying to smooth out the camera instead. Trying to smooth out a camera that is following a rigidbody2d in a way that everything else that isn't a rigidbody moves smoothly is a nightmare.
Hopefully they fix that bug soon.
Answer by Rainbirth · Jul 08, 2016 at 01:26 AM
are you using the Fixed Update? rigid bodies maybe are moving in a fixed update loop and the other object in the normal one. this can cause issues if you're modifying the transform directly.
Try using Rigidbody.movePosition instead, (not sure if this will fully solve your issue but you can look into it).