数组在选择随机项 C#/Unity 时不给出越界错误消息

Array doesnt give an Out of bounds Error Message while picking a Random item C#/Unity

我有一个新手问题。为什么此代码不会产生错误消息?

public Tile[] tiles = new Tile[2];
...
SetTile(0, 0, 0, nocollide, tiles[Random.Range(0,2)]);

数组中有两项,但我选择了 0 到 2 之间的值,这是三项。当我到达 0,1 时,它只会选择第一项。但是为什么?

public static int Range(int min, int max);

描述

原因很简单,Return最小[包含]和最大[不包含]之间的随机整数(只读)。

max 是 exclusive。 Random.Range(0, 10) 可以 return 0 到 9 之间的值。

如果你想包含最大值,那么你可以使用下面重载的方法。

public static float Range(float min, float max);

描述

Return 最小 [inclusive] 和最大 [inclusive] 之间的随机浮点数(只读)。

最大值 包含在内。 Random.Range(0.0f, 1.0f) 可以return 1.0 作为值。

参考: https://docs.unity3d.com/ScriptReference/Random.Range.html