Understanding Network Instantiate

Ok I am new to the Unity3d engine scene and I think I need a little help from those of you with more unity network experience. I hope I misunderstanding a fundamental concept here that will explain my problem or I am just not setting some flag.

In any case here is my dilemma:

I have two game instances setup and running. A is the server while B is a connected client. A is NOT dedicated. The application I am creating is shared network view application, a specialized digital whiteboard of sorts.

Player A spawns 5 objects from a prefab that has a network view attached and is doing reliable delta compressed state sync. When A moves any of these objects B correctly sees them move in real-time so this seems to be working. When B moves any of these objects A does NOT see any of them move.

Same deal if B spawns 5 objects. A sees them move when B moves the objects but B doesn’t see them move when A moves them.

Is their some fundamental ownership of syncronized gameobjects such that only the player intiating the Network.Instantiate() can actually update the gameobjects position and have that update be transmitted to other players? If that is the case is their a way to switch this ownership after the instantiation?

Should I drop the out of the box state synchronization and roll my own with RPC calls? I can do this though it would be nice to use the built in sync features. The out of the box sync is compressed and predictive and while these features aren’t required for my app it certainly would be cool to keep (it only makes everything smoother). Has anyone in community rewritten those RPC functions(syncing tranform, animation and rigidbody) so that we can have access to change them to support a situation like mine?

Thanks for any help anyone can provide.

That said I am loving Unity3d. I have used quite a few other 3D engines, Torque especially, and I am extremely impressed with Unity3D thus far. I have been playing with the engine for about 2 weeks now and I have to say this is the easiest and one of most powerful engines I have used. Bravo Unity devs and designers!!!

I finally came up with a solution that did work for me.

It looks like I was viewing Network State syncronization differently than I probably should have. In the end having all of my movable objects Network Sync’d would have been a bad idea. Those objects don’t move most of the time and it would be overkill to have them sending out a update sync message while just sitting thier without anyone interacting with them.

I still wanted them to be sync’d when a player dragged them about the screen however. I solved this by creating Network Sync’d clone objects when a player grabs them to drag. I just destroy those clone objects when the player finishes/drops the object and use a simple RPC call to update the original object to its new position.

So I don’t actually drag the original object I use a dummy fully sync’d clone while using standard RPC for the actually final destination movement. This has worked out well thus far.

Ves

Hey I’m trying to do the same but can’t get it working. Can you maybe send me your project?!

Thanks