【发布时间】:2014-12-27 04:03:51
【问题描述】:
我有这个二维数组,它给了我一个数组索引超出范围,问题。这个问题的原因是什么,我该如何解决?
编辑:是的,很抱歉。我将在这里包括我想要做的事情:
所以我试图制作锯齿状数组。
所以我有很多platforms,numOfPlatforms
我想通过它们,每个平台都有其Size,即randomXSize。
现在,我想在每个平台上标记一个点,每 0.5 个,这就是我制作的原因
(randomXSize - 0.5)
但我不知道我需要这样做多少次,所以我做了
randomXSizeSegments = randomXSize * 2;
计算每个randomXSize有多少个0.5。
也就是说, 如果第一个平台“0”的 randomXSize 为 3
我希望数组 randomXSizeSegments 看起来像这样
randomXSizeSegments[1][0] = 3
randomXSizeSegments[0][1] = 2.5
randomXSizeSegments[0][2] = 2
randomXSizeSegments[0][3] = 1.5
randomXSizeSegments[0][4] = 1
randomXSizeSegments[0][5] = 0.5
randomXSizeSegments[0][6] = 0
如果第二个平台“1”的randomXSize 为 7
我希望数组 randomXSizeSegments 看起来像这样
randomXSizeSegments[1][0] = 7
randomXSizeSegments[1][1] = 6.5
randomXSizeSegments[1][2] = 6
randomXSizeSegments[1][3] = 5.5
randomXSizeSegments[1][4] = 5
randomXSizeSegments[1][5] = 4.5
randomXSizeSegments[1][6] = 4
randomXSizeSegments[1][7] = 3.5
randomXSizeSegments[1][8] = 3
randomXSizeSegments[1][9] = 2.5
randomXSizeSegments[1][10] = 2
randomXSizeSegments[1][11] = 1.5
randomXSizeSegments[1][12] = 1
randomXSizeSegments[1][13] = 0
void Debugging_One() {
for(int a = 0; a < numOfPlatforms; a = a + 1) {
randomXPosSegments = new int[a][];
randomXSizeSegments = randomXSize * 2;
//Debug.Log(a);
//Debug.Log(randomXSizeSegments);
for(int b = 0; b < randomXSizeSegments; b = b + 1) {
// randomXPosSegments[a][b] = 0;
randomXPosSegments[a] = new int[] {(int)(randomXSize - 0.5)};
//Debug.Log(b);
}
}
}
【问题讨论】:
-
我已经更新了我的答案,以回应您对您要完成的工作的解释。
标签: c# for-loop unity3d multidimensional-array jagged-arrays