- Home /
How do you make a submesh properly?
I could not find anything else helping me on this topic so don't mark this as a repeat!
I need to make 2 submeshes, one for transparent stuff and one for opaque stuff but I could not for the life of me figure out how! So I have the chunk script which handles all the chunk stuff and a chunk object with a mesh renderer, a mesh collider and a mesh filter with 2 materials on the filter and a script for handling meshes called meshData. These contain:
Chunk.cs:
  void UpdateChunk()
     {
         rendered = true;
         MeshData meshData = new MeshData();
         MeshData meshDatasub = new MeshData();
 
         for (int x = 0; x < chunkSize; x++)
         {
             for (int y = 0; y < chunkSize; y++)
             {
                 for (int z = 0; z < chunkSize; z++)
                 {
                     if(blocks[x, y, z].GetType() == typeof(BlockGlass))
                     {
                     meshDatasub = blocks[x, y, z].Blockdata(this, x, y, z, meshDatasub);
                     }else{
                     meshData = blocks[x, y, z].Blockdata(this, x, y, z, meshData);
                     }
                 }
             }
         }
 
         RenderMesh(meshData, meshDatasub);
     }
 
     // Sends the calculated mesh information
     // to the mesh and collision components
     void RenderMesh(MeshData meshData, MeshData meshDatasub)
     {
         filter.mesh.subMeshCount = 2;
         filter.mesh.Clear();
         filter.mesh.vertices = meshData.vertices.ToArray();
         filter.mesh.triangles = meshData.triangles.ToArray ();
         filter.mesh.colors32 = meshData.colors.ToArray();
         filter.mesh.uv = meshData.uv.ToArray();
         filter.mesh.RecalculateNormals();
         coll.sharedMesh = null;
         Mesh mesh = new Mesh();
         mesh.subMeshCount = 2;
         mesh.vertices = meshData.colVertices.ToArray();
         mesh.triangles = meshData.colTriangles.ToArray();
         mesh.RecalculateNormals();
 
         coll.sharedMesh = mesh;
     }
Meshdata:
  public List<Vector3> vertices = new List<Vector3>();
     public List<int> triangles = new List<int>();
     public List<Color32> colors = new List<Color32>();
     public List<Vector3> colVertices = new List<Vector3>();
     public List<int> colTriangles = new List<int>();
     public List<Vector2> uv = new List<Vector2>();
     public bool useRenderDataForCol;
 

I have meshData and meshDatasub in chunk.cs under RenderMesh() and I would like to know how to assign 2 submeshes with meshData and meshDatasub and tiles being opaque and tiles 2 being transarent! Thanks!
Your answer
 
 
             Follow this Question
Related Questions
Assigning UV Map to model at runtime 0 Answers
uv sub meshes in cube c# 0 Answers
UV affectation with multi submeshes 1 Answer
Why does my script-made mesh only look visible from one side??? 1 Answer
Issue with UV mapping a cube 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                