private void SpawnLootBlock(LootBlock lootBlock, Transform parent) { // set position spawnPosition.x = PickLane(); spawnPosition.z += distanceBetweenLootBlocks; spawnPosition.y = defaultY; // spawn all objects foreach (LootSpawnData spawnObject in lootBlock.spawnData) { SpawnLoot(spawnObject, parent); } }
/* * * spawn methods * */ // handles loot spawn for each platform public void DoSpawn(float zPoint, Transform lootBox, float platformSize) { // set spawn Z and reset points X and Y spawnPosition = new Vector3(defaultX, defaultY, zPoint + spawnStartDistance); // try to spawn blocks until we are out of bounds while (spawnPosition.z - startingZ < zPoint + platformSize - spawnEndDistance) { LootBlock lootBlock = GetLootBlock(); if (lootBlock == null) { return; } SpawnLootBlock(lootBlock, lootBox); } }