static GameObject ToSceneGameObject(string s) { string[] tokens = s.Split(DELIMETER_C); int levelIndex = int.Parse(tokens[0]); string name = tokens[1]; LevelManagerComponent.Level owningLevel = (LevelManagerComponent.Level)(levelIndex); if (!LevelManagerComponent.LevelCurrentlyLoaded(owningLevel)) { return(null); } GameObject[] allGameObjects = Object.FindObjectsOfType <GameObject>(); for (int i = 0; i < allGameObjects.Length; ++i) { if (allGameObjects[i].name == name && allGameObjects[i].scene.buildIndex == levelIndex) { return(allGameObjects[i]); } } Logger.Error("Error deserializing Scene Gameobject '" + name + "' (Level " + levelIndex + ") in ToSceneGameObject."); return(null); }
//############################################################################################## // On enter, find the level manager component in our parent hierarchy, then notify it that the // primary level should change to this one. //############################################################################################## private void OnTriggerEnter(Collider other) { if (other.tag == "Player") { LevelManagerComponent manager = GetComponentInParent <LevelManagerComponent>(); if (!manager) { Logger.Error("LevelTriggerComponent " + name + " not parented under LevelManagerComponent correctly"); return; } manager.SetPrimaryLevel(primaryLevel); } }
//############################################################################################## // Setup the various queues, and error check the level loads entries. They should be ordered // in the same order as their build index. //############################################################################################## void Start() { instance = this; saveLoadQueued = 0; loadQueue = new Queue <Level>(); unloadQueue = new Queue <Level>(); levelIsLoaded = new bool[levelLoads.Length]; levelIsLoaded[0] = true; // Since we're in global for (int i = 0; i < levelLoads.Length; ++i) { if (levelLoads[i].selfLevelLabel != (Level)(i)) { Logger.Error("Level load at index " + i + " is out of order. Is " + levelLoads[i].selfLevelLabel + ", but should be " + (Level)(i)); } } }