My character in this game will be blast off from a catapult. It will bounce until it stops (speed = 0). Meanwhile there will be objects on the ground and in the sky that if the character hit them they will slow it down or boost it. My question is, how can i make this objects appear randomly in all length of e.g. 50,000 meters (and height e.g. 1,000 meters for the sky objects). And what really troubles me is the fact that in level 1, i want object3 number of appearance to be 30% and in level 2 60%. How do i do that? I’m new in unity and scripts confuse me. Thank you in advance!
If you’re doing this in C#, make a System.Random variable, and call NextDouble() on it to get a number. Make sure you use to same System.Random variable instead of creating new ones each time.
System.Random rand = new System.Random(0 );
float fVal = rand.NextDouble();
float fVal2 = rand.NextDouble();
float fVal3 = rand.NextDouble();
float fVal4 = rand.NextDouble();
The returned fVal value is now a clamped01 value, meaning it’s between 0.0 and 1.0. If you need a random number between a certain range you can now use a function like Mathf.Lerp() to pass in your minimum, maximum and clamped01 fVal number.
And if you want to check percentages, use that clamped01 value to see if it’s greater than a value:
// For every percent value, you check if it's
// less than your current percentage, added with
// all the other percentages already checked.
if( fVal < 0.3f )
{
// Do 30% stuff here
}
else if( fVal < 0.9f )
{
// Do 60% stuff here
}
else if( fVal < 0.95f )
{
// Do 5% stuff here
}
else
{
// Do the rest of the 5% here
}