ここにいくつかのコードがあります。すべてではありませんが、重要なコードだと思います:
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];
public int[] new_Tri = new int[300];
void Start () {
int n=0;
for(int l=0;l<=Laenge;l++)
{
int k = 0;
for(int b=0;b<=Breite;b++)
{
Debug.Log(l);Debug.Log(b);Debug.Log(n+"n");
if(l<Laenge || b<Breite)
{
Debug.Log(l);Debug.Log(b);Debug.Log(n+"n");
if(b%2 == 1)
{
Debug.Log(l);Debug.Log(b);Debug.Log(n+"n");
new_Ver[n]=new_Ver_s[l,b];
new_UV[n]=new_UV_s[l,b];
n++;
new_Ver[n]=new_Ver_s[1+l,1+b];
new_UV[n]=new_UV_s[1+l,1+b];
n++;
new_Ver[n]=new_Ver_s[1+l,b];
new_UV[n]=new_UV_s[1+l,b];
n++;
}
else
{
Debug.Log(l);Debug.Log(b);Debug.Log(n+"nl");
Vector3 pop = new_Ver_s[l,b];
Debug.Log(l);Debug.Log(b);Debug.Log(n);//All debug. logs are zero
new_Ver[n] = pop; //This is the line where it gives the error message : Array index is out of range.
new_UV[n]= pop;
Debug.Log(l);Debug.Log(b);Debug.Log(n);
n++;
pop = new_Ver_s[l,1+b];
new_Ver[n]=pop;
new_UV[n]=pop;
n++;
pop=new_Ver_s[1+l,b];
new_Ver[n]=pop;
new_UV[n]=pop;
n++;
Debug.Log(l);Debug.Log(b);Debug.Log(n+"neo");
}
Debug.Log(l);Debug.Log(b);Debug.Log(n+"n");
}
if(b>1 || l<Laenge)
{
Debug.Log(l);Debug.Log(b);Debug.Log(n+"fn");
if(b%2 ==1)
{
Debug.Log(l);Debug.Log(b);Debug.Log(n+"f");
new_Ver[n]=new_Ver_s[l,b];
new_UV[n]=new_UV_s[l,b];
n++;
new_Ver[n]=new_Ver_s[l+1,b];
new_UV[n]=new_UV_s[l+1,b];
n++;
new_Ver[n]=new_Ver_s[l+1,b-1];
new_UV[n]=new_UV_s[l+1,b-1];
n++;
}
else
{
Debug.Log(l);Debug.Log(b);Debug.Log(n+"f");
new_Ver[n]=new_Ver_s[l,b];
new_UV[n]=new_UV_s[l,b];
n++;
new_Ver[n]=new_Ver_s[l+1,b];
new_UV[n]=new_UV_s[l+1,b];
n++;
new_Ver[n]=new_Ver_s[l,b-1];
new_UV[n]=new_UV_s[l,b-1];
n++;
}
}
}
}
}
これはかなりのコードです。コメントがある if ブラケットは、最初に通過する場所ですが、コメントのある行で停止します。すべての debug.log はゼロです。コードの一部が不明な場合は、コメントで質問してください。
問題は、なぜエラーメッセージが表示されるのかということです。2次元配列で同様のことをしても問題ありません。要素が空だからですか?
完全なエラー メッセージ:
IndexOutOfRangeException: 配列インデックスが範囲外です。meshmut.Start () (Assets/meshmut.cs:88)
わかりました。コードは正しいです。Unity3d で何か問題が発生したため、いくつかをリセットする必要がありました。他の間違いを見せてくれてありがとう。