/// <summary> /// Create Folder Template /// </summary> /// <example> /// { /// "Name": "Client Folder", /// "Description": "For all client folders created in 2014 or after", /// "Items": [ /// { /// "Name": "Folder 1", /// "Items": [ /// { /// "Name": "Subfolder1" /// } /// ] /// }, /// { /// "Name": "Folder 2" /// } /// ] /// } /// </example> /// <remarks> /// Creates a new folder template. /// </remarks> /// <returns> /// The created folder template /// </returns> public IQuery <FolderTemplate> Create(FolderTemplate template) { var sfApiQuery = new ShareFile.Api.Client.Requests.Query <FolderTemplate>(Client); sfApiQuery.From("FolderTemplates"); sfApiQuery.Body = template; sfApiQuery.HttpMethod = "POST"; return(sfApiQuery); }
/// <summary> /// Update Folder Template /// </summary> /// <example> /// { /// "Name": "Client Folder", /// "Description": "For all client folders created in 2014 or after", /// "Items": [ /// { /// "Name": "A new folder", /// "Items": [ /// { /// "TemplateId": "ft-12345-abdef-abdef-12345-abdef", /// "Name": "A new subfolder" /// } /// ] /// }, /// { /// "Id": "fti-xxxxx-xxxxx-xxxxx-xxxxx", /// "Name": "An existing folder with a different name" /// } /// ] /// } /// </example> /// <remarks> /// Updates an existing folder template /// </remarks> /// <param name="template"></param> /// <param name="overwrite"></param> /// <returns> /// The updated folder template /// </returns> public IQuery <FolderTemplate> Update(FolderTemplate template, bool overwrite = false) { var sfApiQuery = new ShareFile.Api.Client.Requests.Query <FolderTemplate>(Client); sfApiQuery.From("FolderTemplates"); sfApiQuery.QueryString("overwrite", overwrite); sfApiQuery.Body = template; sfApiQuery.HttpMethod = "PATCH"; return(sfApiQuery); }
private void OnGUI() { if (m_closed) { return; } KeyValuePair <UnityObject, FolderTemplate[]> kvp = ObjectsWithMultipleFolders.First(); UnityObject obj = kvp.Key; FolderTemplate[] folders = kvp.Value; GUILayout.Label("Select folder for " + obj.name + " " + obj.GetType().Name); m_index = EditorGUILayout.Popup(m_index, folders.Select(f => f.name).ToArray()); GUILayout.BeginHorizontal(); if (GUILayout.Button("Select")) { FolderTemplate folder = folders[m_index]; if (!folder.Objects.Contains(obj)) { Undo.RecordObject(folder, "BH.RTE.ExposeToEdiro"); System.Array.Resize(ref folder.Objects, folder.Objects.Length + 1); folder.Objects[folder.Objects.Length - 1] = obj; EditorUtility.SetDirty(folder); } ObjectsWithMultipleFolders.Remove(obj); if (ObjectsWithMultipleFolders == null || ObjectsWithMultipleFolders.Count == 0) { Close(); if (ResourceMapUpdateRequired) { if (EditorUtility.DisplayDialog("Resouce Map Update required", "Some assets is not included to resource map. Update resource map?", "Yes", "No")) { RuntimeSaveLoadMenu.CreateResourceMap(); } } m_closed = true; } } if (GUILayout.Button("Cancel")) { ObjectsWithMultipleFolders.Remove(obj); if (ObjectsWithMultipleFolders == null || ObjectsWithMultipleFolders.Count == 0) { Close(); } m_closed = true; } GUILayout.EndHorizontal(); }
private static void HideFromEditor() { FolderTemplate[] templates = Resources.FindObjectsOfTypeAll <FolderTemplate>().Where(template => !template.gameObject.IsPrefab()).ToArray(); List <UnityObject> objectsList = new List <UnityObject>(); foreach (GameObject go in Selection.gameObjects) { if (go.IsPrefab()) { objectsList.Add(go); } else { ExposeToEditor exposeToEditor = go.GetComponent <ExposeToEditor>(); if (exposeToEditor != null) { Undo.DestroyObjectImmediate(exposeToEditor); } } } foreach (UnityObject obj in Selection.objects) { if (obj is GameObject) { continue; } objectsList.Add(obj); } foreach (UnityObject obj in objectsList) { FolderTemplate template = templates.Where(t => t.Objects != null && t.Objects.Contains(obj)).FirstOrDefault(); if (template != null) { Undo.RecordObject(template, "BH.RTE.HideFromEditor"); List <UnityObject> templateObjects = template.Objects.ToList(); templateObjects.Remove(obj); template.Objects = templateObjects.ToArray(); EditorUtility.SetDirty(template.gameObject); } } }
private static bool IsSuitableForObject(FolderTemplate template, UnityObject obj) { if (template.TypeHint != AssetTypeHint.All) { #if PROC_MATERIAL if ((template.TypeHint & AssetTypeHint.ProceduralMaterial) != 0 && obj.GetType() == typeof(ProcMaterial)) { return(true); } #endif if ((template.TypeHint & AssetTypeHint.Material) != 0 && obj.GetType() == typeof(Material)) { return(true); } if ((template.TypeHint & AssetTypeHint.Mesh) != 0 && obj.GetType() == typeof(Mesh)) { return(true); } if ((template.TypeHint & AssetTypeHint.Prefab) != 0 && obj.GetType() == typeof(GameObject)) { return(true); } if ((template.TypeHint & AssetTypeHint.Texture) != 0 && obj is Texture) { return(true); } return(false); } return(true); }