- 此问题在此处已有答案**:
How to initialize a List to a given size (as opposed to capacity)?(16个答案)
ArgumentOutOfRangeException on initialized List(1个答案)
昨天关门了。
我试图做一个不同种类的集合块的列表。2但是我想让它在检查器中只有1,然后在代码中按类别将它们分开。3我想这样做,这样检查器就不会被不同的列表弄得乱七八糟。
然而,在设置它之后,我一直收到一个错误,说ArgumentOutOfRangeException:索引超出范围。必须为非负且小于集合的大小。
参数名称:索引系统.集合.泛型.列表'1 [T]. set_Item(System.Int32索引,T值)(位于:0)块放置. Start()(位于资源/m/脚本/块放置. cs:16)<9aad1b3a47484d63ba2b3985692d80e9>:0) BlockPlacing.Start () (at Assets/m/Scripts/BlockPlacing.cs:16)
我的代码/检查员列表如下所示:
Inspector List Image
代码:
[SerializeField] private List<GameObject> blocks = new List<GameObject>(64);
private List<List<GameObject>> _mineralsList = new List<List<GameObject>>(4);
void Start()
{
for (int j = 0; j < 4; j++)
{
for (int i = 0; i < 4; i++)
{
_mineralsList[j].Insert(i, blocks[i]);
}
}
}
另一种添加到_mineralList的方法是_mineralsList[j][i] = blocks[i]
,但也不起作用,并给出了相同的错误。
1条答案
按热度按时间hyrbngr71#
请尝试使用此代码: