Unity3D中的随机数?

我发现的是如何创建随机数。 大。 然而,该解决方案不适用于其他function。 为了创建随机数,我使用了

Random randomDirection = new Random(); int directionChoice = randomDirection.Next(1, 4); 

在一个名为enemyWalk(){}的函数内部;

但是,这导致了一个错误:

类型’UnityEngine.Random’不包含’Next’的定义,也没有找到’UnityEngine.Random’类型的扩展方法’Next’(你是否缺少using指令或汇编引用?)

当我从函数中取出随机整数生成器时,不会出现此错误。 解决这个问题的任何解决方案?

我希望通过随机选择一个决定他行走方向(向上,向左,向右或向下)的整数,然后使用随机双生成器确定距离,使用此代码让我的敌人在不做任何事情时四处闲逛它走了。 但是我需要一个随机数生成每当enemyWalk(){}; 叫做。

如果您使用的是Unity,则快速搜索表明该方法如下:

 Random.Range(minVal, maxVal); 

请参阅此处Unity文档 – 随机

请记住, minVal包含的,并且maxVal 包括使用整数方法重载时返回的随机值。 在你的情况下,它将是:

 Random.Range(1,4); 

而不是下Next(1,4)

如果使用浮动按照:

 Random.Range(1.0F, 3.5F); 

在这种情况下,minVal和maxVal都包含在内

我希望这有帮助。

简单的解决方案就是使用.NET的Random类,它恰好位于System命名空间中:

 using System; ... //Or System.Random without the using Random randomDirection = new Random(); int directionChoice = randomDirection.Next(1, 5); 

如果你想使用Unity,请调用Range而不是Next

 int directionChoice = randomDirection.Range(1, 5); 

请注意,“max”在两种情况下都是独占的 ,因此您应该使用5来返回1到4之间的值(包括4)

获得随机float

 Random.NextDouble(); //careful, this is between 0 and 1, you have to scale it //Also, this one is exclusive on the upper bound (1) Random.Range(1f, 4f); //max is inclusive now