C# Unity3D中的随机数?
我发现的是如何创建随机数。伟大的但是,此解决方案在其他功能中不起作用。为了创建一个随机数,我使用C# Unity3D中的随机数?,c#,random,unity3d,artificial-intelligence,C#,Random,Unity3d,Artificial Intelligence,我发现的是如何创建随机数。伟大的但是,此解决方案在其他功能中不起作用。为了创建一个随机数,我使用 Random randomDirection = new Random(); int directionChoice = randomDirection.Next(1, 4); 在名为enemyWalk(){}的函数内部 但是,这导致了一个错误: 类型“UnityEngine.Random”不包含“Next”和的定义 找不到类型为“UnityEngine.Random”的扩展方法“Next” (
Random randomDirection = new Random();
int directionChoice = randomDirection.Next(1, 4);
在名为enemyWalk(){}的函数内部
但是,这导致了一个错误:
类型“UnityEngine.Random”不包含“Next”和的定义
找不到类型为“UnityEngine.Random”的扩展方法“Next”
(是否缺少using指令或程序集引用?)
从函数中取出随机整数生成器时,不会出现此错误。有解决这个问题的办法吗
我希望通过随机选择一个整数来决定我的敌人行走的方向(向上、向左、向右或向下),然后使用随机双生成器来确定它行走的距离,从而使我的敌人在不做任何事情的情况下四处游荡。然而,每当
enemyWalk(){}调用code>。简单的解决方案是只使用.NET的Random
类,该类恰好位于系统
命名空间中:
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)
要获取随机浮点值
:
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
在Unity C中,方法如下
Random.Range(minVal, maxVal);
看
该方法将接受整数或浮点参数。如果使用intminVal
是包含的,maxVal
是排除的,则返回的随机值。在您的情况下,它将是:
Random.Range(1,4);
而不是Next(1,4)
例如,如果使用浮点数
Random.Range(1.0F, 3.5F);
返回值也是一个浮点,minVal
和maxVal
在这种情况下是包含的。使用Unity时,它是否允许您使用.NETSystem.Random
类?如果是这样,你应该使用它(正如布拉德利所建议的)。如果没有,你应该在你的问题中清楚这一点。这可能看起来很愚蠢(对不起,我是新手),但我不确定我是否正确使用了这个。当我插入它时,我得到了同样的错误,但这次它说“找不到名称空间名称'Math'的类型”。但是,我不确定是否需要集成.NET?另外,我没有在任何地方使用System.Math,我不确定是否必须使用。@Grantwiney浮点版本是包含的,int版本是独占的。这取决于调用哪个重载。我相信在上述情况下,int-one会出现。@Jeff如果顶部没有使用System
的,请尝试添加它,或者使用System.Math.Random
而不是Math.Random
。我无法想象你不被允许在Unity项目中使用System
。@BradleyDotNet是的,这是有道理的。使用系统是允许的。@PeterDuniho我实际上说的是System.Math
,但我认为他在顶部有一个使用系统。我把它添加到我的代码中。这非常有效。然而,有没有一种方法可以对浮点数执行类似的操作?我希望让我的角色沿着这些线走3.5米或其他什么。maxVal
是唯一的整数重载Range
我的错误。编辑。根据文档,此方法支持浮动作为重载之一。