private void loadLevel() { if (currentLevel >= levels.Length) { // Winner! NextLevelController nextLevelController = GameObject.FindObjectOfType <NextLevelController>(); nextLevelController.loadScene(); return; } clear(); LevelPanelManager.instance.loadLevel(levels[currentLevel]); if (inputLoader == null) { inputLoader = GameObject.Instantiate(inputPref, inputPos.position, Quaternion.identity).GetComponent <LevelInputLoader>(); } if (outputLoader == null) { outputLoader = GameObject.Instantiate(outputPref, outputPos.position, Quaternion.identity).GetComponent <LevelOutputLoader>(); } inputLoader.gate = levels[currentLevel].input; inputLoader.load(); inputGate = inputLoader.gameObject.GetComponent <GateInstance>(); outputLoader.gate = levels[currentLevel].output; outputLoader.load(); outputGate = outputLoader.gameObject.GetComponent <GateInstance>(); stepFails = new List <int>(); step = 0; }
private void clear() { GateInstance[] gates = GameObject.FindObjectsOfType <GateInstance>(); foreach (GateInstance g in gates) { Destroy(g.gameObject); inputLoader = null; outputLoader = null; step = 0; stepFails.Clear(); } }