I ended up adding "prefix" to PhotonViewID and replacing the int -> PhotonView lookups with PhotonViewID lookups. I'm expecting some more issues because PUN seems to assume that there's only ever one level loaded - and in my case, I'm loading all levels on the server so I'm getting non-unique viewIDs (not sure whether Unity assured those were unique across levels or used the level prefix to avoid confusion here - I assume the latter is the case). With that fix, I could play my first Photon based multiplayer session - YAY! Well, at least with a single player and in a single level. Then, in the awake of PhotonView, if it is a scene object, I set the prefix to the current prefix. Any objects already loaded are not touched. I think the "Verif圜anUseNetwork()" is a bit over-used IMHO, it should only be used for operations that really do need a connection (SetLevelPrefix does not if I remove the "can use network"-check, it works alright, and of course, it also worked in Unity when not connected).Īnyways, I changed the logic to work the other way round (the way I'm used to from Unity networking and the way I think this really makes sense): When I'm setting the level prefix, only a static variable is set in NetworkingPeer. Interestingly, PUN will give me an error when I try to set the level prefix when I'm not connected, yet. The first issue I had here had to do with levels that were loaded before networking was initiated. So it's certainly not that Unity just didn't let me know there was a problem (btw, I really like those explicit and informative error messages - they really do help!) The RPC has been ignored." these messages did not occur under Unity's networking - and the relevant functionality worked. So, what I'm getting are lots of messages "Received RPC. So instead of having an effect "in the future" (all objects loaded from that point on), it has an effect on the past (all objects that have been loaded up to this point). PUN seems to do it the other way round: When you call PhotonNetwork.SetLevelPrefix all known PhotonViews get a new level prefix. This makes a lot of sense for many use cases including loading multiple levels simultaneously on the server. The way I understand Unity's level prefixes is that you set the level prefix and all objects loaded from then on get this level prefix (this only applies to scene objects, though - Instantiated prefabs seem to still run in their own space). I'm still in the process of converting my Unity networking based project to PUN and running into another issue: It seems that PUN is handling level prefixes differently from how Unity handles it.