代码之家  ›  专栏  ›  技术社区  ›  T. Grumser

随机范围是什么意思?

  •  1
  • T. Grumser  · 技术社区  · 7 年前

    现在用这个方法的时候有点像这样

    int[] array = {1, 2, 3, 4, 5};
    int number = array[(int)(Random.value * array.length)];
    

    int number = array[(int)((Random.value - Float.epsilon) * array.length)];
    

    此外,我想知道为什么有人会创建一个随机函数,它不会返回比一小的数字?这样做有什么隐藏的好处吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Jon Skeet    7 年前

    不,你不应该用那个。如果它返回1.0,您将遇到问题。坦白地说,我认为这是Unity的API设计错误。

    但是,无论如何,我都不建议您这样编写代码。相反,使用 Random.Range method :

    int number = array[Random.Range(0, array.Length)];
    

    int 值将最大值视为 独家