Unity Editor在运行这些脚本时崩溃



因此,我的编辑器在运行这些脚本时不断崩溃。我的电脑规格(如果需要(:英特尔i5,8GB内存,Windows 10

我正试图制作一款《我的世界》游戏,但我的编辑器崩溃了:

VoxelData.cs:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public static class VoxelData
{
public static readonly int ChunkWidth = 2;
public static readonly int ChunkHeight = 2;
public static readonly Vector3[] voxelVerts = new Vector3[8] {
new Vector3(0.0f,0.0f,0.0f),
new Vector3(1.0f,0.0f,0.0f),
new Vector3(1.0f,1.0f,0.0f),
new Vector3(0.0f,1.0f,0.0f),
new Vector3(0.0f,0.0f,1.0f),
new Vector3(1.0f,0.0f,1.0f),
new Vector3(1.0f,1.0f,1.0f),
new Vector3(0.0f,1.0f,1.0f),
};
public static readonly int[,] voxelTris = new int[6, 6]{
{0,3,1,1,3,2},
{5,6,4,4,6,7},
{3,7,2,2,7,6}, // top face
{1,5,0,0,5,4},
{4,7,0,0,7,3},
{1,2,5,5,2,6}
};
}

和Chunk.cs脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Chunk : MonoBehaviour
{
public MeshRenderer meshRenderer;
public MeshFilter meshFilter;
// Start is called before the first frame update
int vertexIndex = 0;
List<Vector3> vertices = new List<Vector3>();
List<int> triangles = new List<int>();
List<Vector2> uvs = new List<Vector2>();
void Start()
{
for(int y = 0; y < VoxelData.ChunkHeight; y++)
{
for (int x = 0; x < VoxelData.ChunkWidth; x++)
{
for (int z = 0; x < VoxelData.ChunkWidth; z++)
{
AddVoxelDataToChunk(new Vector3(x, y, z));
}
}
}
CreateMesh();
}
void AddVoxelDataToChunk(Vector3 pos)
{
for (int p = 0; p < 6; p++)
{
for (int i = 0; i < 6; i++)
{
int triangleIndex = VoxelData.voxelTris[p, i];
vertices.Add(VoxelData.voxelVerts[triangleIndex] + pos);
triangles.Add(vertexIndex);
uvs.Add(Vector2.zero);
vertexIndex++;
}
}
}
void CreateMesh()
{
Mesh mesh = new Mesh();
mesh.vertices = vertices.ToArray();
mesh.triangles = triangles.ToArray();
mesh.uv = uvs.ToArray();
mesh.RecalculateNormals();
meshFilter.mesh = mesh;
}
// Update is called once per frame
}

为什么它一直崩溃,这很烦人,不让我继续这个项目。请帮助并建议如何进行

最内部的

// | here !
// v 
for (int z = 0; x < VoxelData.ChunkWidth; z++)
{
AddVoxelDataToChunk(new Vector3(x, y, z));
}

将导致无限循环,因为x在其中没有任何变化。

它很可能是z

// | here !
// v 
for (int z = 0; z < VoxelData.ChunkWidth; z++)
{
AddVoxelDataToChunk(new Vector3(x, y, z));
}

最新更新