返回一个在 [minInclusive..maxInclusive]
内的随机 float
(范围是包含的)。
如果 minInclusive
大于 maxInclusive
,则数字会自动交换。
重要:上下界限都是包含的。它们之间任何给定的浮点数,包括 minInclusive 和 maxInclusive 本身,平均每十亿个随机样本出现一次。
此函数有一个 int
重载,它的工作方式略有不同,特别是在范围最大值方面。请参见下面的文档。
请参见 Random,了解有关该算法的详细信息,以及 UnityEngine.Random
可能与其他随机数生成器不同的示例。
using UnityEngine;
public class ExampleClass : MonoBehaviour { public GameObject prefab;
// Click the "Instantiate!" button and a new `prefab` will be instantiated // somewhere within -10.0 and 10.0 (inclusive) on the x-z plane void OnGUI() { if (GUI.Button(new Rect(10, 10, 100, 50), "Instantiate!")) { var position = new Vector3(Random.Range(-10.0f, 10.0f), 0, Random.Range(-10.0f, 10.0f)); Instantiate(prefab, position, Quaternion.identity); } } }
返回一个在 [minInclusive..maxExclusive)
内的随机 int
(只读)。
最大参数是排外的,因此例如 Random.Range(0, 10)
返回 0 到 9 之间的值,每个值出现的概率大致相同。
如果 minInclusive
和 maxExclusive
相等,则该方法返回 minInclusive
。
如果 minInclusive
大于 maxExclusive
,则输入参数将被交换,但保持它们的包含性或排外性,这取决于它们原来的位置,这意味着该方法在交换后将变为 Random.Range(minExclusive, maxInclusive)
。
例如,调用 Random.Range(10, 0)
不等同于 Random.Range(0, 10)
。 Random.Range(10, 0)
返回 1 到 10 之间的值,因为 10 成为包含的最大值,而 0 成为排外的最小值。
此函数有一个 float
重载,它的工作方式略有不同,特别是在范围最大值方面,请参见上面的文档。
请参见 Random,了解有关该算法的详细信息,以及 UnityEngine.Random
可能与其他随机数生成器不同的示例。
using UnityEngine;
public class ExampleClass : MonoBehaviour { public GameObject prefab; public float zoffset = 10;
// Click the "Instantiate!" button and a new grid of `prefab` objects will be // instantiated with a random number of items in each direction. void OnGUI() { if (GUI.Button(new Rect(10, 10, 100, 50), "Instantiate!")) { // the grid will always be 1, 2, 3, 4, or 5 prefabs wide int xcount = Random.Range(1, 6); // the grid will always be 2, 3, or 4 prefabs long int ycount = Random.Range(2, 5);
for (int x = 0; x != xcount; ++x) { for (int y = 0; y != ycount; ++y) { var position = new Vector3(x * 2, zoffset, y * 2); Instantiate(prefab, position, Quaternion.identity); } }
zoffset += 2; } } }