Great package. I was going to write my own networking framework for the game we're making soon, but I saw this and the quality of it's design and code and thought I'd save myself the time

.
I've only been using it for a few hours so far and will probably have more suggestions and find more issues later, but so far I have these:
- "OnCreateObject" sets mObjectOwner to playerID after the instantiation happens. This looks like a bug as it is set to creator earlier which it should remain as.
- For my project I want players to be told when an object has been instantiated and who created it so that I can have them create themselves and then check if they can control that instantiated player. I've added a delegate "onCreated" which is called at the end of the OnCreateObject method and pass it the GameObject created, it's objectID and the creating Player object. To me this seems like it would be useful for other users so I thought you might consider adding it as well (would also save me merging changes later
)? - Thirdly, in TNManager.cs where you assign its methods to the mClient delegates (onError, onConnect, etc), could you change the assignment from "=" to "+=" as I could potentially see myself adding additional callbacks for those and if I add them in an earlier Awake() method they'll be overwritten.
Thanks again for making this package. I spent 3 years working on a large networked simulation project in Unity and produced for that something of a very similar design, but didn't end up as clean and easy to integrate into general multiplayer projects (mine was primarily for cluster rendering on multi-machine driven displays).
Edit:
Found what seems like another issue: Creating AutoSync objects at runtime won't work properly as their
mCanSync value will not be set to true. I've fixed for now in my project with
if (TNManager.isConnected)
{
mCanSync = true;
}
In Awake().