static void sceneUnloaded(Scene s) { var activeScene = UnityEngine.SceneManagement.SceneManager.GetActiveScene(); Debug.LogWarning($"sceneUnloaded:{activeScene.name} buildIndex={activeScene.buildIndex}"); if (activeScene.buildIndex != curSceneIndex) { return; } curSceneIndex = -1; WorldInitialization.DomainUnloadShutdown(); }
static void sceneLoaded(Scene s, LoadSceneMode m) { var activeScene = UnityEngine.SceneManagement.SceneManager.GetActiveScene(); Debug.LogWarning($"sceneLoaded:{activeScene.name} buildIndex={activeScene.buildIndex}"); var automaticWorldBootstrap = FindObjectOfType <_AutomaticWorldBootstrap>(); if (automaticWorldBootstrap == null) { return; } curSceneIndex = activeScene.buildIndex; // //WorldInitialization.Initialize_DefaultWorld(); WorldInitialization.RegisterDomainUnload(); #if !UNITY_CLIENT // if (automaticWorldBootstrap.serverRoot != null && automaticWorldBootstrap.serverRoot.gameObject.activeSelf) { var root = automaticWorldBootstrap.serverRoot; WorldInitialization.Initialize(root.name, new ServerNetworkBootstrap { root = root }); } #endif #if !UNITY_SERVER // ClientNetworkBootstrap.SetClientWorldCount(automaticWorldBootstrap.clientRoots.Length); for (var i = 0; i < automaticWorldBootstrap.clientRoots.Length; ++i) { var root = automaticWorldBootstrap.clientRoots[i]; if (root.gameObject.activeSelf) { WorldInitialization.Initialize(root.name, new ClientNetworkBootstrap { worldIndex = i, root = root }); } } #if UNITY_EDITOR initPlayerInputClientSystems(); #endif #endif }