public static Task FilterAddRenderer(MeshFilter filter, Material material, FilterAddRendererReturn ret) { Task task = new Task(); TaskManager.PushFront(task, delegate() { ret(VoxelBuilder.FilterAddRenderer(filter, material)); }); return(task); }
static public GameObject CreateMesh(VoxelStruct vs, Transform parent, Material material, string name = "Voxel") { var data = VoxelBuilderHelper.Struct2DataInCache(vs); var mesh = VoxelBuilder.Data2Mesh(data); var filter = VoxelBuilder.Mesh2Filter(mesh); VoxelBuilder.FilterAddRenderer(filter, material); filter.transform.SetParent(parent); filter.transform.localEulerAngles = Vector3.zero; filter.transform.localPosition = Vector3.zero; filter.gameObject.layer = parent.gameObject.layer; filter.name = name; return(filter.gameObject); }
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); }
// Update is called once per frame void Update() { if (_building == true && _voxFile != null) { init(); if (_voxFile != null) { var vs = MagicaVoxelFormater.ReadFromFile(_voxFile).vs; var data = VoxelBuilder.Struct2Data(vs); var mesh = VoxelBuilder.Data2Mesh(data); var filter = VoxelBuilder.Mesh2Filter(mesh); VoxelBuilder.FilterAddRenderer(filter, this._material); filter.transform.SetParent(this.transform); filter.transform.localEulerAngles = Vector3.zero; filter.transform.localPosition = data.offset; filter.gameObject.layer = this.gameObject.layer; filter.name = "Voxel"; } _building = false; } }