private List <Level> readLevels() { Regex regex = new Regex("level\\d+.xml"); List <Level> levels = new List <Level>(); var dir = new System.IO.DirectoryInfo(Application.dataPath + "/Resources/"); foreach (System.IO.FileInfo f in dir.GetFiles()) { var name = f.Name; //Exclude all files that aren't level files. if (name.EndsWith(".meta") || !regex.IsMatch(name)) { continue; } //Else parse file and add to list levels.Add(PuzzleXMLReader.readLevel("/Resources/" + f.Name)); } return(levels); }
void Start() { Level level = LevelManager.Instance().loadLevel(PlayerPrefs.GetInt(Constants.playerPrefsLevel, 0)); puzzle = PuzzleXMLReader.createLevel(level); Debug.Log("Size: " + gameObject.GetComponent <MeshRenderer>().bounds.size); gameBoard = new SlotManager(gameObject.transform.position, gameObject.GetComponent <MeshRenderer>().bounds.size, puzzle.getNumberOfSlots()); gameBoard.initSlots(); //create workbench var workbench = Instantiate(Resources.Load("Workbench", typeof(GameObject)) as GameObject); workbench.transform.parent = this.transform.parent; workbench.transform.position = Constants.workbenchCoords; workbench.name = Constants.workbenchName; gameBoard.slots.ForEach(s => createdSlotGameObjects.Add(createSlotFromPrefab(s))); int i = 0; foreach (PuzzleProgrammingElement programmingElement in level.puzzleProgrammingElements) { DragObject dragObj = createElementFromPrefab(programmingElement); if (programmingElement.isLocked) { gameBoard.slots[i].setElement(dragObj); dragObj.transform.position = gameBoard.slots[i].position; dragObj.disableGravity(); } if (programmingElement.isPartOfSolution && -1 != programmingElement.valueOfId) { i++; } } LevelStartStopHandler.Instance.StartLevel(level.levelId); GameObject.Find("Lieferumfang-Text").GetComponent <TextMeshPro>().text = LevelManager.Instance().getCurrentLevelElements(); }