C#数组索引超出范围但索引为零

时间:2013-06-16 17:34:40

标签: c# arrays unity3d

public int Laenge = 10;
public int Breite = 10;   
public Vector3[] new_Ver = new Vector3[300];
public Vector3[,] new_Ver_s = new Vector3[11,11];
public Vector2[] new_UV = new Vector2[300];
public Vector2[,] new_UV_s = new Vector2[11,11];


void Start () {
int n=0;
for(int l=0;l<=Laenge;l++)
    {
        for(int b=0;b<=Breite;b++)
        {
            if(b>1 || l<Laenge)
            {
                if(b%2 ==1)
                {
                    Debug.Log(l);Debug.Log(b);Debug.Log(n+"f");
                    new_Ver[n]=new_Ver_s[l,b]; //this is the line where it says theres a bug.
                    new_UV[n]=new_UV_s[l,b];
                    n++;
                }     
            }
        }   
    }

它说:

  

IndexOutOfRangeException:数组索引超出范围

但是调试说所有的indizes都是零。是因为元素是空的吗?我怎么能轻松地把东西放在那里?如果我使用二维数组执行相同的操作,则没有问题。 我试了一下,用一个空的vector3变量替换了new_Uv_s。这仍然是同样的错误。'

1 个答案:

答案 0 :(得分:0)

您的代码注定要崩溃,因为您在每次迭代时增加 n ,并且您可能有类似50次迭代=&gt;在某些时候, n将超过29 new_Ver 数组的最后一个索引。

为什么要将其大小设置为30?

如果你想要一些纬度使用100.:)