立方体顶点和三角形意外工作

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

我正在用 C# 编写一个简短的脚本来统一创建一个立方体。一切都工作正常,直到我弄乱了所有立方体点和东西。

private Vector3[] GenerateVerts()
    {

        return new Vector3[]
        {
            // bottom    x   y   z
            new Vector3( 1, -1, -1),
            new Vector3( 1,  1, -1),
            new Vector3(-1,  1, -1),
            new Vector3(-1, -1, -1),

            // top
            new Vector3( 1, -1,  1),
            new Vector3( 1,  1,  1),
            new Vector3(-1,  1,  1),
            new Vector3(-1, -1,  1),

            // left
            new Vector3(-1, -1,  1),
            new Vector3(-1, -1, -1),
            new Vector3(-1,  1,  1),
            new Vector3(-1,  1, -1),

            // right
            new Vector3( 1, -1,  1),
            new Vector3( 1, -1, -1),
            new Vector3( 1,  1,  1),
            new Vector3( 1,  1, -1),

            // front
            new Vector3( 1, -1, -1),
            new Vector3(-1, -1, -1),
            new Vector3( 1,  1, -1),
            new Vector3(-1,  1, -1),

            // back
            new Vector3( 1, -1,  1),
            new Vector3(-1, -1,  1),
            new Vector3( 1,  1,  1),
            new Vector3(-1,  1,  1),
        };

    }


    private int[] GenerateTris()
    {

        return new int[]
        {
            //bottom
            0,1,2,
            0,2,3,

            //top
            4,5,6,
            4,6,7,


            
            9,10,11,
            8,10,9,

            12,13,15,
            14,12,15,


            16,17,19,
            18,16,19,

            21,22,23,
            22,20,23
        };

    }

我很困惑,发现很难将所有内容排列起来,这样说吧。

所有侧面都工作正常,然后顶部和底部要么重叠,要么出现在另一个面所在的位置:

c# arrays unity-game-engine 3d
1个回答
0
投票

在你的generateverts函数中我认为你做错了:

这些是你的底部顶点:

“”“

// bottom    x   y   z
        new Vector3( 1, -1, -1),
        new Vector3( 1,  1, -1),
        new Vector3(-1,  1, -1),
        new Vector3(-1, -1, -1),

        // top
        new Vector3( 1, -1,  1),
        new Vector3( 1,  1,  1),
        new Vector3(-1,  1,  1),
        new Vector3(-1, -1,  1),

“”“

而且我认为它们的正面和背面是一样的

“”“

        // front
        new Vector3( 1, -1, -1),
        new Vector3(-1, -1, -1),
        new Vector3( 1,  1, -1),
        new Vector3(-1,  1, -1),

        // back
        new Vector3( 1, -1,  1),
        new Vector3(-1, -1,  1),
        new Vector3( 1,  1,  1),
        new Vector3(-1,  1,  1),

“”“

这正常吗?

© www.soinside.com 2019 - 2024. All rights reserved.