// Format refer to // https://github.com/ephtracy/voxel-model/blob/master/MagicaVoxel-file-format-vox.txt public static IEnumerable <VoxelData> ParseFrom(string path, out Color32[] palette) { List <VoxelData> outputData = new List <VoxelData>(); using (VoxReader reader = new VoxReader(path)) { reader.Read(); foreach (var model in reader.m_Models) { VoxelData data = CreateInstance <VoxelData>(); data.m_Width = model.m_SizeX; data.m_Height = model.m_SizeY; data.m_Depth = model.m_SizeZ; data.m_RawData = new Voxel[model.m_SizeX * model.m_SizeY * model.m_SizeZ]; foreach (var voxel in model.m_Voxels) { if (voxel.colourIndex == 0) { Debug.LogWarning("Colour Index 0 found!"); } data.m_RawData[data.GetRawIndex(voxel.x, voxel.y, voxel.z)] = new Voxel(voxel.colourIndex); } outputData.Add(data); } palette = new Color32[reader.m_Palette.Length]; for (int i = 0; i < palette.Length; ++i) { palette[i] = reader.GetColour(i); } } return(outputData); }