Simple drop in setup. Smooths Transforms, including Rigidbodies over the network with ease.
How to Use
Add the SmoothSync script to any networked game object and watch it be smoooooth. That’s it! The end.
Reduce Network Costs
Only send what you need, reducing the networking costs over Unity’s Network Transform by up to 60%.
Optionally compress floats to further reduce bandwidth.
Use Unity’s own calculator to see just how fast it will pay for itself and save you money.
Details
We’ve aimed to improve NetworkTransform on all fronts. Smooth Sync is more configurable, uses less bandwidth, and gives you smoother and more accurate syncing of your objects.
Performs customizable interpolation and extrapolation in order to make your objects smooth and more accurate over the network.
Comes with a fully functional example scene.
The full source code is provided so you can see everything with detailed comments!
Built in teleporting for when you need to instantly move an object and don’t want to interpolate.
We are actively developing this plugin for use in our own multiplayer game so we are very fast to respond to issues and put out fixes.
Runs on Windows, OSX, Linux, iOS, Android, Windows Phone, Web builds, Xbox, PlayStation, Nintendo. If Unity runs it, it’ll run!
If you have any questions just let me know. I hang around in the forums all the time. I’m also always available at the support email.
Further Reduce Your Networking Costs
Check out our NAT Traversal plugin to stop using those expensive Unity relay servers.
Or check out our Noble Connect plugin to utilize the awesome power of cheaper relay servers.
In my project I have vehicles that can be controlled by difference players. Authority is assigned and removed as players get in and out of vehicles. The player in the vehicle should be responsible for syncing the transform of the vehicle.
Does your asset sync movement correctly as Authority is changed between clients?
I just bought this asset, and am happy with the smoothness of synced movement.
Would it be possible to add a replacement for the NetworkTransformChild script?
I am unable to use NetworkTransformChild without a NetworkTransform script on the parent gameobject. Adding the SmoothSync script on to the child object requires a network identity on the child and parent object, which Unity does not allow.
Howdy! We just bought this asset and immediately learned the hard way that SmoothSync.cs doesn’t work with Rigidbody2D. Are there plans for 2D support? We didn’t see any warning in the asset store that it wouldn’t work with 2D. It’s only 9 bucks, but any notification would be a welcome addition. Also, I may be a goofball and have missed some 2D–specific script to add to our game objects. Let me know either way. Thanks!
Just a dumb oversight by me. I will have 2d rigidbody support submitted to the asset store by the end of the work week.
I’ll notify you when I finish so I can send you an early copy if you want.
As a quick fix if you just want it up now, you can change “rb” from using Rigidbody to Rigidbody2D on SmoothSync.cs lines 70 and 88, and then comment out all of the lines that yell at you because of it. I can also just email it to you, but I will have a better architected version later in the week.
Hi there. Just got your asset. Love it for the most part, except that I am having some pesky errors while spawning objects with Smooth Sync.
Here is what I think is relevant in my spawn method, nothing too weird. I am moving the objects using NavMeshAgent.Move(). The object does have rigidbody on it. The errors show up on client side only.
Thanks! Yeah I went in and made duplicates of SmoothSync, State, and SmoothNet, changing anything that required a Rigidbody or Vector3 to the appropriate 2D equivalent, and it all seems to work pretty steady. I’m just working on adjusting it now to do an automatic teleport update every now and then. Because I keep the send rate really low, I have some objects which don’t exceed their snap distance, so they try to lerp over and over, but are falling through the floor (some terrain gets generated out of order with the entities that walk on it on the client end). I figure that would probably help clear it up.
Hello, First I very happy, because I searched many article, I find your asset.
I am creating a 3D Racing in mobile.(android), Single player or up to 2 players online.
And When it multiplayer, sometimes other prefab Racing Cart looks like a teleport.
So, I’m just wondering.
If i use your asset, Am I improve for smooth moving? or Do you have any similar case or experience ( like mobile/android , 3d racing)?
@TubooBokBok_1@deliinteractive@studiocolon
All of your problems are fixed. I submitted to the asset store but it’ll take a bit before it’s approved. If you want it sooner, send me a message at the support email with your invoice number and what version of Unity you are using and I’ll send you a copy.
@Vaidoras
I may or may not have fixed your issue. I wasn’t able to replicate it exactly so I’m not 100% sure. Message me your invoice number and editor version at the support email and I can get you a build to test. If you could post some more code or send me a project that I can use to replicate the issue that may also help.
@chansukim
Yep! It’ll smooth all transforms with or without a rigidbody. I use it in my 2D racing game (www.grabblesgame.com) for PC and consoles but it will be fine for mobile.
Change log for version 1.01 that is submitted to the asset store but is not approved yet by Unity.
Added Rigidbody2D support.
Added dedicated server support.
Added networked child object support.
Fixed spawn error messages when instantiating in a specific way.
Combined SmoothNet and SmoothSync into SmoothSync script so it would be simpler.
Updated documentation.
If you buy a copy and want the updated version now, shoot me an email at the support email with your invoice number and which version of Unity you are using.
I’m having trouble getting this to work and wondering what I’m obviously doing wrong. Using v1.01 (Unity asset store already updated). Previously I had cannonballs firing using NetworkTransform. I replaced NetworkTransform with SmoothSync and that results in the cannonballs instantiating and flying correctly on the server, but when spawned on the client they simply drop from their starting position straight down due to gravity to the sea floor. They don’t appear to get any force applied or any position updates from the sever version of the objects. I don’t see any changes after spawning of the X & Z positions of the cannonballs.
Not sure what the issue is.
I tried instantiating/spawning with both of these sets of code with no difference (both work fine with NetworkTransform other than some in flight jitters I was looking to smooth out). I tried increasing the snap value to 200 and reducing it to 5 with no difference.
Is how I am spawning it on the server and it syncs to clients for me.
Am I missing something here?
You might want to try newCannonBall.GetComponent().AssignClientAuthority(NetworkServer.connections[0]); to force authority?
Do your spawned objects have hasAuthority as false on both client and server?
The cannonball objects, and all network objects in my game, have server authority and are instantiated and spawned on the server. I’ll try playing with assigning client authority and see if that does anything, though I don’t actually want to end up with client authority. thanks