I have two scenes. Scene A, and Scene B.
When the game starts, Scene A is loaded.
When the player connects to a server, Scene B is loaded.
Inside Scene A there is a NetworkView with a script containing DoNotDestroyOnLoad().
Inside Scene B there is another NetworkView (with nothing special about it).
The problem is, because both network views are in separate scenes, both of them have the same ID (zero), and consequently when they both eventually end up in the same scene together, they conflict!
Now, you might ask, why not have the NetworkView in Scene B just allocate a new ID at run time? Well, I was actually originally doing this, but I have come to the realization that runtime-allocated NetworkView IDs are one way – IE, you cannot send RPCs to a NetworkView you do not own if its ID was allocated at run time. So, I started using scene-allocated IDs to allow for two way communication! But unfortunately, this has created the godforsaken ID confliction.
Note that invalidating the NetworkView from Scene A will not work – I need BOTH networkviews to remain functional, and I need BOTH networkviews to support two-way communication.
Does anyone know a way for me to stop this ID confliction? Is there a way for me to allocate IDs at runtime, but still have them support two-way communication? An answer to either query will be marked as answer to this question!