public static void DestroyAllOfType(typeOfCorridor type) // Hides AND Destroys corridor objects of given type { List <Corridor> instancesToRemove = new List <Corridor>(); foreach (Corridor corr in Corridor.listOfCorridors) { if (corr.type == type) { corr.floorObject.SetActive(false); Destroy(corr.floorObject); foreach (GameObject wall in corr.wallObjects) { wall.SetActive(false); Destroy(wall); } foreach (GameObject corner in corr.cornerObjects) { corner.SetActive(false); Destroy(corner); } Destroy(corr.triggerObject); instancesToRemove.Add(corr); } } foreach (Corridor removeCorr in instancesToRemove) { listOfCorridors.Remove(removeCorr); } instancesToRemove.Clear(); }
public Corridor(Vector3 start, Vector3 end, typeOfCorridor corrType = typeOfCorridor.DEFAULT, bool standardCorridor = true) { type = corrType; this.start = start; this.end = end; CalculateCorridor(standardCorridor); listOfCorridors.Add(this); }
public static void CreateCorridorBetween(Vector3 start, Vector3 end, typeOfCorridor type, bool standardCorridor = true) // Instantiates the prefab of a specific size to work as a corridor. { Corridor tempCorr = new Corridor(start, end, type, standardCorridor); GameObject tempObject = Instantiate(_floorPrefab, new Vector3(0, 0, 0), Quaternion.identity); tempObject.transform.parent = CorridorContainer.transform; tempObject.transform.localScale = tempCorr.size; tempObject.transform.localPosition = tempCorr.center; tempCorr.floorObject = tempObject; tempCorr.SetFloorMaterial(); listOfPoints.Add(tempCorr.end); }
public static void ChangeActiveAllOfType(typeOfCorridor type) // Deactivates/Hides corridor objects of given type { foreach (Corridor corr in listOfCorridors) { if (corr.type == type) { if (corr.isActive) { corr.floorObject.SetActive(false); corr.isActive = false; foreach (GameObject wall in corr.wallObjects) { wall.SetActive(false); } foreach (GameObject corner in corr.cornerObjects) { corner.SetActive(false); } corr.triggerObject.SetActive(false); } else if (!corr.isActive) { corr.floorObject.SetActive(true); corr.isActive = true; foreach (GameObject wall in corr.wallObjects) { wall.SetActive(true); } foreach (GameObject corner in corr.cornerObjects) { corner.SetActive(true); } corr.triggerObject.SetActive(true); } } } }