feature: NetworkRigidbody (snapshot interpolation)
NetworkRigidbody component based on Snapshot Interpolation.
- Rigidbody only ever modifies Transport component
- NetworkTransform already syncs Transport component
- NetworkRigidbody simply inherits from NetworkTransform and sets the RB to kinematic if we don't have authority
before: https://gyazo.com/f9b6f55768a07a38e52a00d3f66693c8
after: https://gyazo.com/040f35daf2d488a2ca5fb369e01a59ce
test via:
- change tanks projectile script to set velocity in onstartserver only
- add NetworkRibidbody component
- see if it syncs like above
NOTE: obsoletes the two experimental ones
TODO: NetworkTransformBase helper: 'can I move this?' bool
Kudos, SonarCloud Quality Gate passed! 
0 Bugs
0 Vulnerabilities
0 Security Hotspots
0 Code Smells
No Coverage information
0.0% Duplication
Thanks for this! I think it's a good start, and we can add syncVelocity syncAngularVelocity etc later as options IMO
Just tested the current NetworkRigidbody vs the new code, and the new code gives much better result - I have a camera following the rigidbody, which would jump randomly with the current approach because of jittering transform position (I think), whereas the new approach gives a smooth transition which is great.
One issue without syncing the rigidbody velocity though, is that for a fast moving object like a bullet, after I spawn it and give it a large initial force, on client it would stay at the spawn position for a while until gets updated to the next position. So I think being able to sync the initial velocity would be a good option. I'm pretty new to Unity and Mirror so please correct me if wrong.
Thanks for making this better!
What about objects that change authority over the course of the game? One example is VR. Players have client authority over their rigs and when they pick up an object, they are given authority over that object. This would require to set isKinematic to false for the client with authority if the Rigidbody at spawn was dynamic.
This doesn't appear to sync any rb values, so what am I missing? All this seems to do is force kinematic and kill the rb.
Where are all these handled?



closed by accident - sorry
What's the status on this one? Updated Mirror and found it's still not in - maybe a toggle or live alongside original NetworkRigidbody so people have a choice?
@vis2k saw lots of work done recently to Mirror - how do you think about this one could we merge it in some way?
@hyouuu sorry, missed your comment. lets rebase this and get it done. we need a smooth rigidbody.
Good to see progress finally!
closing as mirror has this already now