如何将精灵网格拆分为两个单独的精灵网格?

时间:2021-01-12 19:02:57

标签: c# unity3d 3d mesh

所以我使用 Unity。

我会试着解释一下。网格是:

Sprite sprite = m_SpriteRenderer.sprite;

我试图将其一半的三角形和顶点存储在四个单独的变量中:

       //First half
       ushort[] triA = triangles.Take(triangles.Length / 2).ToArray();
       //Second Half
       ushort[] triB = triangles.Skip(triangles.Length / 2).ToArray(); 
       
       //First half
       Vector2[] spriteA = spriteVertices.Take(spriteVertices.Length / 2).ToArray();
       //Second Half
       Vector2[] spriteB = spriteVertices.Skip(spriteVertices.Length / 2).ToArray();

然后,我分别实例化这些变量:

        GameObject a = Instantiate(gameObject);
        //Stops infinite loop
        a.GetComponent<SplitCircle>().enabled = false;
 
        /*
         * Error of Invalid triangle index array. 
         * Some indices are referencing out of bounds vertices, 
         * IndexCount: 189, VertexCount: 64
         */
        a.GetComponent<SpriteRenderer>().sprite.OverrideGeometry(spriteA, triA);

为简单起见,我只关注网格的前半部分。 我的问题是了解我所做的是否有意义。我什至需要存储三角形吗?我也不明白我的三角形是如何引用越界顶点的。

我希望一切顺利。

注意:我知道我可以从精灵中创建更小的游戏对象并创建分裂的错觉,但我希望我正在做的事情具有更高的质量。

0 个答案:

没有答案
相关问题