试图让Minecraft(以下教程)的代码无法工作[关闭] 。

问题描述 投票:-1回答:1

这是我的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.comwatch?v=h66IN1Pndd0&list=PLVsTSlfj0qsWEJ-5eMtXsYp03Y9yF1dEn&index=1。

该错误可能与第21行的函数有关,由于它不像其他添加函数那样是黄色的。

vertices.Add(VoxelData.voxelVerts [triangleIndex]);

先谢谢你

c# unity3d 3d minecraft cube
1个回答
0
投票

由于你没有说明错误,我必须假设是这样的错误

int triangleIndex = VoxelData.voxelTris[0, 1];

应该是

int triangleIndex = VoxelData.voxelTris[0, i];

如果这还不能解决这个问题,那么我认为你应该更具体地说明这个错误。


0
投票

只要去掉中间的空格?

vertices.Add(VoxelData.voxelVerts[triangleIndex]);
© www.soinside.com 2019 - 2024. All rights reserved.