void OnGUI() { if (isAtlasDirty) { EditorUtility.SetDirty(uftAtlas); isAtlasDirty = false; } EditorGUILayout.Separator(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(new GUILayoutOption[] { GUILayout.Width(200f) }); EditorGUILayout.Separator(); EditorGUILayout.LabelField("Atlas:"); string newName = EditorGUILayout.TextField("name", uftAtlas.atlasName); if (newName != uftAtlas.atlasName) { uftAtlas.atlasName = newName; } UFTAtlasMetadata newMeta = (UFTAtlasMetadata)EditorGUILayout.ObjectField((Object)atlasMetadata, typeof(UFTAtlasMetadata), false); if (newMeta != atlasMetadata) { if (uftAtlas.atlasEntries.Count == 0 || (uftAtlas.atlasEntries.Count > 0 && EditorUtility.DisplayDialog("This action will remove all existing textures on your atlas", "Do you want to proceed?", "Proceed", "Cancel"))) { if (UFTAtlasEditorEventManager.onAtlasMetadataObjectChanged != null) { UFTAtlasEditorEventManager.onAtlasMetadataObjectChanged(newMeta); } atlasMetadata = newMeta; } } EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("new")) { if (uftAtlas.atlasEntries.Count == 0 || (uftAtlas.atlasEntries.Count > 0 && EditorUtility.DisplayDialog("This action will remove all existing textures on your atlas", "Do you want to proceed?", "Proceed", "Cancel"))) { onClickNew(); } } if (GUILayout.Button("save")) { onClickSave(); } EditorGUILayout.EndHorizontal(); UFTAtlasSize newWidth = (UFTAtlasSize)EditorGUILayout.EnumPopup("width", uftAtlas.atlasWidth); UFTAtlasSize newHeight = (UFTAtlasSize)EditorGUILayout.EnumPopup("height", uftAtlas.atlasHeight); EditorGUILayout.Separator(); EditorGUILayout.LabelField("Allign:"); uftAtlas.borderSize = EditorGUILayout.IntField("border size", uftAtlas.borderSize); if (GUILayout.Button("allign") && uftAtlas != null && uftAtlas.atlasEntries.Count > 0) { uftAtlas.arrangeEntriesUsingUnityPackager(); } if (newWidth != uftAtlas.atlasWidth || newHeight != uftAtlas.atlasHeight) { uftAtlas.atlasWidth = newWidth; uftAtlas.atlasHeight = newHeight; if (UFTAtlasEditorEventManager.onAtlasSizeChanged != null) { UFTAtlasEditorEventManager.onAtlasSizeChanged((int)newWidth, (int)newHeight); } } EditorGUILayout.Separator(); EditorGUILayout.LabelField("Atlas Textures [" + uftAtlas.atlasEntries.Count + "]:"); if (uftAtlas.atlasEntries.Count > 0) { if (GUILayout.Button("trim alpha")) { uftAtlas.trimAllEntries(); } } atlasTexturesScrollPosition = EditorGUILayout.BeginScrollView(atlasTexturesScrollPosition); if (uftAtlas.atlasEntries.Count > 0) { List <string> names = uftAtlas.atlasEntries.ConvertAll(new System.Converter <UFTAtlasEntry, string>(uftAtlasEntryToString)); names.Sort(); foreach (string name in names) { EditorGUILayout.LabelField(name, GUILayout.MaxWidth(220f)); } } EditorGUILayout.EndScrollView(); EditorGUILayout.Separator(); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); EditorGUILayout.Separator(); EditorGUILayout.BeginHorizontal(); scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition); GUILayoutUtility.GetRect((int)uftAtlas.atlasWidth, (int)uftAtlas.atlasHeight); uftAtlas.OnGUI(); EditorGUILayout.EndScrollView(); EditorGUILayout.Separator(); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); EditorGUILayout.Separator(); if (Event.current.type == EventType.DragUpdated || Event.current.type == EventType.DragPerform) { DragAndDrop.visualMode = DragAndDropVisualMode.Copy; // show a drag-add icon on the mouse cursor if (Event.current.type == EventType.dragPerform) { HandleDroppedObjects(DragAndDrop.objectReferences); } DragAndDrop.AcceptDrag(); Event.current.Use(); } }