这是我的Chunk.cs代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Chunk : MonoBehaviour
{
public MeshRenderer meshRenderer;
public MeshFilter meshFilter;
void Start()
{
int vertexIndex = 0;
List<Vector3> vertices = new List<Vector3>();
List<int> triangles = new List<int>();
List<Vector2> uvs = new List<Vector2>();
for(int i = 0; i < 6; i++)
{
int triangleIndex = VoxelData.voxelTris[0, 1];
vertices.Add(VoxelData.voxelVerts [triangleIndex]);
triangles.Add(vertexIndex);
uvs.Add(Vector2.zero);
vertexIndex++;
}
Mesh mesh = new Mesh();
mesh.vertices = vertices.ToArray();
mesh.triangles = triangles.ToArray();
mesh.uv = uvs.ToArray();
mesh.RecalculateNormals ();
meshFilter.mesh = mesh;
}
}
这是我的VoxelData.cs代码:
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using UnityEngine;
public static class VoxelData
{
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[1, 6]
{
{3, 7, 2, 2, 7, 6}// Top face
};
}
这是我一直关注的教程:
https://www.youtube.com/watch?v=h66IN1Pndd0&list=PLVsTSlfj0qsWEJ-5eMtXsYp03Y9yF1dEn&index=1
该错误可能与第21行的函数有关,因为它不像其他添加函数那样呈黄色:
vertices.Add(VoxelData.voxelVerts [triangleIndex]);
预先感谢
答案 0 :(得分:0)
只是要删除它们之间的空间?
vertices.Add(VoxelData.voxelVerts[triangleIndex]);
答案 1 :(得分:0)
由于您未指定错误,因此我必须假定是
int triangleIndex = VoxelData.voxelTris[0, 1];
应该是
int triangleIndex = VoxelData.voxelTris[0, i];
如果不能解决问题,那么我认为您应该更详细地说明错误。