private IEnumerator GenerateLevelEnvironment(GameStageModel stageModel) { LoadPatches(m_EnvironmentType); float levelLength = stageModel.m_LevelLength; SetFinishUpLine(levelLength); levelLength -= CreateFirstPatch(); while (levelLength > 0) { levelLength -= CreatePatch(Random.Range(0, m_Patches.Length)); } yield return(null); //Add Extra Patch at End CreatePatch(0); }
private IEnumerator SpawnProps(GameStageModel stage) { float levelLength = stage.m_LevelLength; float traverseLength = 60f; while (traverseLength < levelLength) { if (Random.Range(0f, 100f) <= m_PropSpawnPercentage) { if (Random.Range(0f, 100f) <= m_NPCSpawnPercentage) { SpawnProp(m_NPCPrefabs[Random.Range(0, m_NPCPrefabs.Length)], traverseLength); } else { SpawnProp(m_TrapsPrefabs[Random.Range(0, m_TrapsPrefabs.Length)], traverseLength); } } traverseLength += GameConstants.k_CellOffset; yield return(null); } }
public void StartLevelGeneration() { GameStageModel CurrentStageModel = GameManager.Instance.Levels.CurrentStageModel; StartCoroutine(GenerateLevelEnvironment(CurrentStageModel)); }