We are experiencing performance problems on PS4 with Rigidbodies that have many child colliders. The issue arises when we do our own custom interpolation. We set the root transform to an interpolated position in the update, and then restore the original un-interpolated position it at the end of the frame.
The PS4 profiler shows a very expensive PhysicsManager.SyncTransforms call on the following frame, where it appears to be performing Collider::TRSChanged for every child transform/collider in the hierarchy, and each call is performing a relatively slow Rigidbody::UpdateMassDistribution(). Does UpdateMassDistribution need to be called internally for every child? Does this only happen on the PS4 implementation, and is there anyway we can ensure it only gets called once for the Rigidbody, or ultimately not at all since the transform should be being placed back in it’s original post fixed update position?
Thanks for your time.
Try to use Rigidbody.MovePosition in FixedUpdate
Thanks I don’t think that will help me in this case though. I may have a solution to my problem using native Rigidbody interpolation though, provided that doesn’t come with the same overhead as mentioned in my initial post.