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(); }
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); }