示例#1
0
        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();
        }
示例#2
0
        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
        }