public static VoxelData ImportVoxFile(string filePath) { var importedData = VoxelImport.Import(filePath); if (importedData == null) { Console.WriteLine("Unable to read file {0}", filePath); } return(importedData); }
public static VoxelData ImportVoxFile(string filePath) { VoxelData importedData = null; try { importedData = VoxelImport.Import(filePath); } catch (IOException) { Console.WriteLine($"Unable to read file {filePath}"); } if (importedData == null) { Console.WriteLine($"Unable to read file {filePath}"); } return(importedData); }
void VoxInspectorGUI(string path) { var voxelData = VoxelImport.Import(path); // Read only EditorGUILayout.Vector3Field("Size", new Vector3(voxelData.size.X, voxelData.size.Y, voxelData.size.Z)); EditorGUILayout.IntField("Count", voxelData.Count); // Editable GUI.enabled = true; if (GUILayout.Button("Create Prefab")) { VoxAssetPostprocessor.ImportVoxelFile(path); } }
static void Main(string[] args) { if (args.Length == 0) { Console.WriteLine("usage: Voxels.CommandLine.exe voxfiles...\n Converts .vox files to .png and .svg files."); } else { NativeLibrary.Initialize(); foreach (var filename in args) { var voxelData = VoxelImport.Import(filename); File.WriteAllBytes(Path.ChangeExtension(filename, ".png"), Renderer.RenderPng(512, voxelData)); File.WriteAllBytes(Path.ChangeExtension(filename, ".svg"), Renderer.RenderSvg(512, voxelData)); } } }
public static void ImportVoxelFile(string path) { var dir = Path.GetDirectoryName(path); var name = Path.GetFileNameWithoutExtension(path); var meshDir = dir + "/Meshes/"; var prefabDir = dir + "/Prefabs/"; Directory.CreateDirectory(meshDir); Directory.CreateDirectory(prefabDir); var prefabPath = prefabDir + name + ".prefab"; var meshPath = meshDir + name + ".asset"; var shadowPath = meshDir + name + ".shadow.asset"; var mesh = AssetDatabase.LoadAssetAtPath <Mesh>(meshPath); if (mesh == null) { mesh = new Mesh(); mesh.name = name; AssetDatabase.CreateAsset(mesh, meshPath); } var shadow = AssetDatabase.LoadAssetAtPath <Mesh>(shadowPath); if (shadow == null) { shadow = new Mesh(); shadow.name = name + ".shadow"; AssetDatabase.CreateAsset(shadow, shadowPath); } var prefab = AssetDatabase.LoadAssetAtPath <GameObject>(prefabPath); if (prefab == null || !prefab.transform.Find("shadow")) { var gameObject = new GameObject(name); var prefabShadow = new GameObject("shadow"); prefabShadow.transform.parent = gameObject.transform; prefab = PrefabUtility.CreatePrefab(prefabPath, gameObject); GameObject.DestroyImmediate(gameObject); GameObject.DestroyImmediate(prefabShadow); } var voxelData = VoxelImport.Import(path); VoxelImporter.VoxelsToUnity(prefab, mesh, voxelData, new MeshSettings { FrontFaces = true, BackFaces = true }); var shadowObject = prefab.transform.Find("shadow").gameObject; VoxelImporter.VoxelsToUnity(shadowObject, shadow, voxelData, new MeshSettings { FloorShadow = true }); EditorUtility.SetDirty(mesh); EditorUtility.SetDirty(shadow); EditorUtility.SetDirty(prefab); }