コード例 #1
0
    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;
        }
        }
    }
コード例 #2
0
    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);
    }