- Home /
NetworkView conflicts between Levels
What is the best way to resolve this situation where you: load scenes with GameObjects that have NetworkViews and `DontDestroyOnLoad()`? 
This causes conflicts in the viewId's of the NetworkView between objects when you switch levels.
Note: This does not affect `Network.Instantiate`'ed objects because the viewId is made unique automatically for you.
init_scene is the first loaded scene. _Managers and Main Camera have `DontDestroyOnLoad()` so that they are maintainted between level changes.
Here is a list of of networkView.viewId and what scene they originate from. We started at init_scene and then `Application.LoadLevel()` level01 
init_scene:
- _Managers: SceneID: 1 Level Prefix: 0 
- Main Camera: SceneID: 2 Level Prefix: 0 - level01:
- Ring: SceneID: 2 Level Prefix: 0 
- Sphere: SceneID: 1 Level Prefix: 0 
- **Player(Clone):* AllocatedID: 1 
- **Player(Clone):* AllocatedID: 150 
- `Network.Instantiate`'ed. Meaning they are dynamically loaded into the level.* 
As you can see there is a conflict between _Managers<->`Sphere` and Main Camera<->`Ring`. So if you call an RPC on Ring then it will error:
 RPC call failed because the function 'RPCFucntion' does not exist in any script attached to'Main Camera'
The only solution I can think of is to have the server `Network.Instantiate` those objects. But I really want those objects saved in the scene and not hidden away in a script until I press play.
For others who want to debug their NetworkView's, here is a snippet that you can use:
 [ContextMenu ("Analyze networkView ID")]
 void AnalyzeNetworkViews() {
     NetworkView[] netViews = FindObjectsOfType(typeof(NetworkView)) as NetworkView[];
 
     Debug.Log("-------------------------");
     foreach(NetworkView netView in netViews)
     {
         Debug.Log(netView + " - id: " + netView.viewID + " - guid: " + netView.owner.guid);
     }
     Debug.Log("-------------------------");
 }
interference, conflicts, blocking
Answer by MLM · Mar 05, 2014 at 04:59 AM
I can't believe I missed this **related question**
You want to call `Network.SetLevelPrefix(...)` before the Application.LoadLevel(...) call.
Also see this documentation "Network Level Loading"
Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                