Exemple #1
0
    void OnGUI()
    {
        EditorGUILayout.BeginVertical();

        root   = (Transform)EditorGUILayout.ObjectField("Hierarchy Root", root, typeof(Transform), true);
        folder = EditorGUILayout.ObjectField("Destination Folder", folder, typeof(Object), false);
        tags   = (TagsAsset)EditorGUILayout.ObjectField("Tags to Update (Optional)", tags, typeof(TagsAsset), false);

        GUILayoutHelpers.HorzLine();

        GUI.enabled = (root != null) && ((tags != null) || (folder != null));

        if (GUILayout.Button((tags != null) ? "Update Tags Asset" : "Create Tags Asset"))
        {
            if (tags != null)
            {
                tags.Rebuild(root);
            }
            else
            {
                if (TagsAsset.Create(root, Utils.SafeGetNewAssetPathFromPath(AssetDatabase.GetAssetPath(folder) + "/NewTags")) == null)
                {
                    EditorUtility.DisplayDialog("Error", "Couldn't create tags asset.", "OK");
                }
            }
        }

        GUI.enabled = true;

        EditorGUILayout.EndVertical();
    }
Exemple #2
0
    public static TagsAsset Create(Transform root, string path)
    {
        List <Element> elements = new List <Element>();

        AddTags(root, null, elements);

        TagsAsset asset = null;

        if (elements.Count > 0)
        {
            asset          = Utils.CreateAsset <TagsAsset>(path);
            asset.elements = elements;
        }

        return(asset);
    }