示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
 // 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;
     }
 }