C# I';我想知道为什么我的随机范围(1,2)不是';行不通
在这里,我想知道为什么我只得到“0”而不是“1”。(我用的是Unity,C#)C# I';我想知道为什么我的随机范围(1,2)不是';行不通,c#,unity3d,C#,Unity3d,在这里,我想知道为什么我只得到“0”而不是“1”。(我用的是Unity,C#) 使用Random.Range时,应记住需要插入的最大值应始终大于1 例如: 如果您想获得“1”,有时需要将最大值设置为“2”,而不是“1” 所以它应该是这样的: x=随机范围(0,2) 因此,始终在所需的最大值上添加1个数字 您的标题提到的范围(1,2)没有出现。无论如何,UnityEngine.Random.Range(0,1)将只返回0。From:“public static int Range(int-minI
使用Random.Range时,应记住需要插入的最大值应始终大于1 例如: 如果您想获得“1”,有时需要将最大值设置为“2”,而不是“1” 所以它应该是这样的: x=随机范围(0,2)
因此,始终在所需的最大值上添加1个数字 您的标题提到的
范围(1,2)
没有出现。无论如何,UnityEngine.Random.Range(0,1)
将只返回0
。From:“public static int Range(int-minInclusive,int-maxExclusive);
Description返回[minInclusive
。maxExclusive
)(只读)内的随机整数。此方法将以以下方式运行:maxExclusive
是独占的,因此例如`random.Range(0,10)`将返回一个介于0和9之间的值,每个值的概率大致相等。“也许您应该描述一下,当最大值被定义为独占时,为什么您希望得到1
?@RufusL可能是因为FM表示maxInclusive…但仅适用于(float,float)->float
version…如果一个人不精通语言,并且在阅读文档时不太小心,那么他会很困惑…不确定“需要插入的最大值应该始终大于1”是什么意思.RangeRange
方法肯定适用于负数。随机范围的最大值!因为它的语法是这样的:Random.Range(最小值,最大值)正确,但它不必大于1
。另外,为什么你说“有时你需要…”.这意味着有时它是不必要的...@RufusL我认为它必须比最大预期输出大1;)只是措辞有点混乱是的,这就是我的意思,如果我没有发音,对不起:)
public int x;
void Start()
{
x = Random.Range(0, 1);
}
public void Test()
{
if(x == 0)
{
Debug.Log("0");
}
else if(x == 1)
{
Debug.Log("1");
}
}