Plugin Version: 3.13 Unity Version: 5.3.* - 2018.3*
Performs interpolation and extrapolation in order to make your objects smooth and more accurate over the network. Highly configurable, only send what you need. Optionally compress floats to further reduce bandwidth. Customizable interpolation and extrapolation settings depending on your game's needs. Comes with a fully functional example scene. The full source code is provided so you can see everything with detailed comments!
Supports Windows, OSX, Linux, iOS, Android, Windows Phone, Xbox, PlayStation, Nintendo. If Unity runs it, it'll run!
Now that it is on your networked object:
Unlike the NetworkTransform script provided by Unity, the SmoothSync script stores a list of network States to interpolate between. This allows for a more accurate and smoother representation of synced objects.
Check out SmoothSyncExamplePlayerController.cs and SmoothSyncExample.unity for implementations and further explanation of these:
SmoothSync.teleport() - Used to teleport your objects for situations like respawning so that they don't interpolate.
SmoothSync.forceStateSendNextFixedUpdate() - Useful if you have a low send rate but you want to manually send a transform in between the send rate.
SmoothSync.clearBuffer() - You will need to manually call this on all of the object's instances if you change the object's network owner.
Alternatively, check Smooth Authority Changes to use handle authority changes automatically and smoothly.
When using Mirror you must call AssignAuthorityCallback() on the server after changing authority.
SmoothSync.validateStateMethod - You may set up a validation method to check incoming States to see if cheating may be happening.
Don't hesitate to contact us with any problems, questions, or comments.
With Love,
Noble Whale Studios