private void readVoxFile(TextAsset voxFile) { Stream sw = new MemoryStream(voxFile.bytes); System.IO.BinaryReader br = new System.IO.BinaryReader(sw); MagicaVoxel magic = null; var vs = MagicaVoxelFormater.ReadFromBinary(br).vs; SplitVoxel split = new SplitVoxel(vs); for (int i = 0; i < _boxes.Count; ++i) { split.addBox(_boxes[i]); } VoxelStruct[] vses = split.doIt(); _items.Clear(); for (int i = 0; i < vses.Length; ++i) { // vses [i].arrange (); string md5 = MagicaVoxelFormater.GetMd5(vses [i]); Item item = new Item(); item.voxel = vses [i]; item._MD5 = md5; //item.data = CreateData (md5, vses [i]); _items.Add(item); } }
public static GameObject Building(GameObject obj, System.IO.BinaryReader br, Material material, int reversal = 0) { MagicaVoxel magica = MagicaVoxelFormater.ReadFromBinary(br); VoxelStruct vs = VoxelStruct.Reversal(magica.vs, reversal); // VoxelBuilder.Reversal(magica.vs, reversal); var data = VoxelBuilder.Struct2Data(vs); // VoxelBuilderHelper.Struct2DataInCache (vs); var mesh = VoxelBuilder.Data2Mesh(data); var filter = VoxelBuilder.Mesh2Filter(mesh); VoxelBuilder.FilterAddRenderer(filter, material); filter.transform.SetParent(obj.transform); filter.transform.localEulerAngles = Vector3.zero; filter.transform.localPosition = data.offset; filter.gameObject.layer = obj.layer; filter.name = "Voxel"; return(filter.gameObject); }
public static MagicaVoxel ReadFromFile(TextAsset file) { System.IO.BinaryReader br = GDGeek.VoxelReader.ReadFromFile(file); return(MagicaVoxelFormater.ReadFromBinary(br)); }