I’m making this game where you have slide down platforms (that are parallel) but had problems with generation. I made a little script that generates 10 of the same platforms parallel. But how do I randomly instantiate other prefabs? I tried with a random number generator and if statements but then the platforms wouldn’t be parallel anymore.
Then you could create a random number generator to select a random prefab from this group based on the object’s index in the array. This range is 0 → length of array - 1 so we can create our generator in a scalable fashion like this:
Then just use the instantiate function like you’ve used above to spawn a random object out of the array.
It’s been a while since I used Unity all the time but this should do the job. Here’s your code modified to fit this style:
[SerializeField] private Transform[] platformPrefabs;
[HideInInspector] private float nextPlatformYCord = 0f;
[HideInInspector] private float nextPlatformXCord = 0f;
//you were comparing a float to an int so I fixed that, unless you very specifically want to have like 10.5 platforms
private int numOfPlatforms = 10f;
int x = 1;
private void Awake()
{
do
{
SpawnPlatforGen1(new Vector2(10.33815f, -3.778132f) + new Vector2(nextPlatformXCord, nextPlatformYCord));
nextPlatformXCord += 16.31f;
nextPlatformYCord -= 10.49f;
x++;
} while (x <= numOfPlatforms);
}
private void SpawnPlatforGen1(Vector2 spawnPosition)
{
Transform platformToSpawn = platformPrefabs[Random.Range(0, platformPrefabs.Length)];
Instantiate(platformToSpawn, spawnPosition, Quaternion.identity);
}