private void SpawnItemsInLevel(LevelComponent inLevelComponent, PointGroup inGroup) { RunnerItemManager runnerItemManager = RunnerItemManager.Instance; switch (inGroup.mSpawnType) { case eSpawnType.Coins: { SpawnCoinStrip(inLevelComponent, inGroup); break; } case eSpawnType.Hazards: { HazardItem newHazard = (HazardItem)runnerItemManager.GetRandomItemOfType(typeof(HazardItem), mCurrentLevelGroup.LevelGroupID); SpawnitemtAtRandomPointInGroup(inLevelComponent, inGroup, newHazard); break; } case eSpawnType.Items: { RunnerItem newItem = (RunnerItem)runnerItemManager.GetRandomItemOfType(typeof(RunnerItem), mCurrentLevelGroup.LevelGroupID); SpawnitemtAtRandomPointInGroup(inLevelComponent, inGroup, newItem); break; } } }
private RunnerItem ItemFactory(Type inItemType, LevelGroup.eLevelGroupID levelGroupID) { RunnerItem spawnedItem = null; if (inItemType == typeof(HazardItem)) { List <HazardItem> hazardItems = levelHazardItems[levelGroupID]; HazardItem randomHazard = hazardItems[Random.Range(0, hazardItems.Count)]; spawnedItem = (HazardItem)Instantiate(randomHazard); } else if (inItemType == typeof(CoinItem)) { CoinItem randomCoin = CoinItems[Random.Range(0, CoinItems.Count)]; spawnedItem = (CoinItem)Instantiate(randomCoin); } else if (inItemType == typeof(RunnerItem)) { RunnerItem randomItem = ItemPrefabs[Random.Range(0, ItemPrefabs.Count)]; spawnedItem = (RunnerItem)Instantiate(randomItem); } else { Debug.LogError("No spawn logic set for item type " + inItemType); } spawnedItem.transform.parent = runnerItemsParent.transform; return(spawnedItem); }