/// <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(); }
/* * /// <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(); }