Exemplo n.º 1
0
    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);
        }
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
    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);
        }
    }