private static void RecurseDirectory(DirectoryInfo dir) { FileInfo[] files = dir.GetFiles(); foreach (FileInfo file in files) { PartTools pt = (PartTools)AssetDatabase.LoadAssetAtPath(GetAssetName(file), typeof(PartTools)); if (pt == null) { continue; } PrefabType prefabType = PrefabUtility.GetPrefabType(pt); if (prefabType == PrefabType.Prefab) { Debug.Log("Writing " + pt.modelName); PartToolsEditor.PartWriter.Write( pt.modelName, pt.filePath, pt.filename, ".mu", pt.transform, pt.copyTexturesToOutputDirectory, pt.convertTextures, pt.autoRenameTextures); } } DirectoryInfo[] subDirs = dir.GetDirectories(); foreach (DirectoryInfo subDir in subDirs) { RecurseDirectory(subDir); } }
private List <PartTools> GetPartToolsAtPath(string path) { List <string> paths = GetPrefabsAtPath(path); List <PartTools> parttools = new List <PartTools>(); foreach (string s in paths) { Object o = AssetDatabase.LoadAssetAtPath(s, typeof(GameObject)); GameObject go = o as GameObject; PartTools pt = go.GetComponent <PartTools>(); if (pt != null) { parttools.Add(pt); } } return(parttools); }
private void AutoFill() { Debug.Log("Autofilling"); List <string> paths = GetPrefabsAtPath(folderpath); foreach (string s in paths) { Debug.Log("Loading asset " + s); string[] pathsplit = Regex.Split(s, @"[/\\]"); string ptpath = path; if (usefolder && pathsplit.Length > 1) { ptpath += pathsplit[pathsplit.Length - 2] + "/"; } if (autoname && pathsplit.Length > 0) { string partname = pathsplit[pathsplit.Length - 1]; ptpath += partname.Split('.')[0]; } Object o = AssetDatabase.LoadAssetAtPath(s, typeof(GameObject)); GameObject go = o as GameObject; if (go == null) { Debug.LogWarning("Cannot load asset at " + s); continue; } PartTools pt = null; if ((pt = go.GetComponent <PartTools>()) == null) { pt = go.AddComponent <PartTools>(); } pt.modelName = modelname; pt.filePath = ptpath; pt.production = production; pt.textureFormat = textureFormat; EditorUtility.SetDirty(go); } }