Ejemplo n.º 1
0
        /**
         * Loads any scenes adjacent to the active scene.
         */
        private static void LoadAdjacentScenes()
        {
            for (int i = activeSceneX - 1; i <= activeSceneX + 1; i++)
            {
                if (i < 0)
                {
                    continue;
                }

                for (int j = activeSceneY - 1; j <= activeSceneY + 1; j++)
                {
                    if (j < 0)
                    {
                        continue;
                    }

                    String sceneName = SceneMap.GetPartition(i, j);

                    if (sceneName == null || loadedScenes.ContainsKey(sceneName))
                    {
                        continue;
                    }
                    else
                    {
                        loadedScenes.Add(sceneName, new Vector2(i, j));
                        SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive);
                        print("Loaded Scene: " + sceneName);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /**
         * Load the starting scene.
         */
        public void Start()
        {
            keyController = gameObject.AddComponent <KeyController>();
            string activeScene = SceneMap.GetPartition(activeSceneX, activeSceneY);

            loadedScenes.Add(activeScene, new Vector2(activeSceneX, activeSceneY));
            SceneManager.LoadScene(activeScene, LoadSceneMode.Additive);
            SceneManager.sceneLoaded += SceneLoaded;
        }
Ejemplo n.º 3
0
        /**
         * Call this when the player crosses the bounds into another scene so adjacent scenes are loaded.
         */
        public static void SceneTransitionMade(int x, int y)
        {
            string name = SceneMap.GetPartition(x, y);

            if (activeScene.Equals(name) || name == null)
            {
                return;
            }
            activeSceneX = x;
            activeSceneY = y;
            activeScene  = name;
            UnityEngine.SceneManagement.Scene scene = SceneManager.GetSceneByName(name);
            UnloadScenes();
            LoadAdjacentScenes();
            SceneManager.SetActiveScene(SceneManager.GetSceneByName(name));
            //printSceneInfo();
        }