Exemple #1
0
        /// <summary>
        /// Destroys the dungeon
        /// </summary>
        public void DestroyDungeon()
        {
            NotifyPreDungeonDestroy();

            var itemList     = GameObject.FindObjectsOfType <DungeonSceneProviderData>();
            var dungeonItems = new List <GameObject>();

            foreach (var item in itemList)
            {
                if (item == null)
                {
                    continue;
                }
                if (item.dungeon == this)
                {
                    dungeonItems.Add(item.gameObject);
                }
            }
            foreach (var item in dungeonItems)
            {
                if (Application.isPlaying)
                {
                    Destroy(item);
                }
                else
                {
                    DestroyImmediate(item);
                }
            }

            // Build the navigation
            var navigation = GetComponent <DungeonRuntimeNavigation>();

            if (navigation != null)
            {
                navigation.BuildNavMesh();
            }

            if (dungeonModel != null)
            {
                dungeonModel.ResetModel();
            }

            if (dungeonBuilder != null)
            {
                dungeonBuilder.OnDestroyed();
            }

            NotifyDungeonDestroyed();
        }
Exemple #2
0
        /*
         * /// <summary>
         * /// Builds the custom navigation managed by the dungeon architect plugin
         * /// This requires a DungeonNavigation prefab present in the level
         * /// </summary>
         * public void BuildNavigation() {
         *      var navGameObject = GameObject.FindGameObjectWithTag(DungeonConstants.TAG_DUNGEON_NAVIGATION);
         *      if (navGameObject == null) {
         *              Debug.LogWarning("Cannot build navigation. No dungeon navigation object found in the scene. Drop in the DungeonNavigation prefab into the scene");
         *              return;
         *      }
         *
         *      //var navMesh = navGameObject.GetComponent<DungeonNavMesh>();
         *      //navMesh.Build();
         * }
         */

        /// <summary>
        /// Destroys the dungeon
        /// </summary>
        public void DestroyDungeon()
        {
            var itemList     = GameObject.FindObjectsOfType <DungeonSceneProviderData>();
            var dungeonItems = new List <GameObject>();

            foreach (var item in itemList)
            {
                if (item == null)
                {
                    continue;
                }
                if (item.dungeon == this)
                {
                    dungeonItems.Add(item.gameObject);
                }
            }
            foreach (var item in dungeonItems)
            {
                if (Application.isPlaying)
                {
                    Destroy(item);
                }
                else
                {
                    DestroyImmediate(item);
                }
            }

            if (dungeonModel != null)
            {
                dungeonModel.ResetModel();
            }

            if (dungeonBuilder != null)
            {
                dungeonBuilder.OnDestroyed();
            }
            NotifyDungeonDestroyed();
        }