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