What I found was how to create random numbers. Great. This solution, however, was not working in other functions. To create a random number, I used
Random randomDirection = new Random();
int directionChoice = randomDirection.Next(1, 4);
inside of a function called enemyWalk(){};
However, this caused an error:
Type 'UnityEngine.Random' does not contain a definition for 'Next' and no extension method 'Next' of type 'UnityEngine.Random' could be found (are you missing a using directive or an assembly reference?)
This error does not appear when I take the random integer generator out of the function. Any solutions to fix this problem?
I'm hoping to use this code to make my enemy wander around when not doing anything by randomly choosing an integer that decides which direction he walks (up, left, right, or down), then using a random double generator to determine the distance it walks. However I need a random number generated whenever enemyWalk(){};
is called.
The simple solution would be to just use .NET's
Random
class, which happens to be in theSystem
namespace:If you want to use Unity's, call
Range
instead ofNext
:Note that "max" is exclusive in both cases, so you should use 5 to return values between 1 and 4 (including 4)
To get random
float
:If you're using Unity, a quick search has indicated that the method is as follows:
See here Unity Documentation - Random
Please bear in mind that
minVal
is inclusive andmaxVal
is exclusive of the returned random value when using the integer method overload. In your case it would be:Instead of
Next(1,4)
.If using floats as per:
Both minVal and maxVal are inclusive in this case.
I hope this helps.