c# - 数组在选择随机项 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);
描述
原因很简单,返回一个介于 min [ inclusive ] 和 max [ exclusive ]之间的随机整数(只读)。
max 是独占的。Random.Range(0, 10) 可以返回 0 到 9 之间的值。
如果要包含最大值,则可以使用以下重载方法。
public static float Range(float min, float max);
描述
返回 min [ inclusive ] 和 max [ inclusive ]之间的随机浮点数(只读)。
max 是包容性的。Random.Range(0.0f, 1.0f) 可以返回 1.0 作为值。
参考: https ://docs.unity3d.com/ScriptReference/Random.Range.html
推荐阅读
- javascript - 如何使用javascript突出显示某一列中具有最小值的表行
- json - Azure ARM 模板 - 在不触发扩展安装的情况下运行 DSC 脚本?
- javascript - 我对如何运行 javascript 代码一无所知
- r - ifelse 在向量的每个元素上
- latex - 如何组合一些期刊论文的乳胶文件并制作一个包含所有具有自己格式的文件?
- python - 忽略 re.sub 命令 python 上的“\n”
- html - matSuffix 使 mat-icon 不在 mat-icon-button 中水平居中
- angular - 动态创建列时的 Ag-grid ExportAsCsv
- python - 解析表
- sorting - 如果 piot 是第一个或最后一个,那么快速排序指针的位置应该是什么?