If I create a clean project and install any of the three above-mentioned network demonstrations (located here, here, and here), as soon as I get to the player list I get the error, “DontDestroyOnLoad only work for root GameObjects or components on root GameObjects.UnityEngine.Networking.NetworkLobbyPlayer:Start().” What appears to be happening is the NetworkLobbyPlayer is calling DontDestroyOnLoad, but the NetworkLobbyPlayer is a child of a PlayerListSubPanel (which does not call DontDestroyOnLoad). It seems like it should work anyway, because in each of these example, the root object “LobbyManager” DOES call DontDestroyOnLoad, and my understanding of the docs is that DontDestroyOnLoad() for the root object should affect the entire transform hierarchy.
I came from a search engine outside of unity.
Thanks to this post I think I found a solution. Sorry this reply might be nearly a year late but, here it goes a solution. On the examples project, put a private void Start(){} in the LobbyPlayer.cs. This override the the repeated DontDestroyOnLoad called in the Start() function in the NetworkLobbyPlayer class which LobbyPlayer.cs inherited.
If you are wondering where DontDestroyOnLoad had already been loaded, it should be from the LobbyManager.cs.