コード例 #1
0
ファイル: SpriteAlignUI.cs プロジェクト: RFPadilha/HPS1-Jam
    public static void Popup(Rect rect, SpriteAlignment alignment, Action <SpriteAlignment> callback)
    {
        var popup = new SpriteAlignUI();

        popup.SetData(rect, alignment, callback);
        PopupWindow.Show(rect, popup);
    }
コード例 #2
0
ファイル: SpriteAlignUI.cs プロジェクト: RFPadilha/HPS1-Jam
    public static void DrawGUI(Rect position, GUIContent label, SpriteAlignment alignment, Action <SpriteAlignment> callback)
    {
        Rect rectButton = position;

        if (label != GUIContent.none)
        {
            rectButton = EditorGUI.PrefixLabel(position, label);
        }

        string text     = DisplayCamelCaseString(alignment.ToString());
        bool   didPress = GUI.Button(rectButton, text, EditorStyles.popup);

        if (didPress)
        {
            var popup = new SpriteAlignUI();
            popup.SetData(rectButton, alignment, callback);
            PopupWindow.Show(rectButton, popup);
        }
    }
コード例 #3
0
ファイル: PsdImportWindow.cs プロジェクト: RFPadilha/HPS1-Jam
        private void DrawReconstructor()
        {
            if (importSettings == null)
            {
                return;
            }

            EditorGUILayout.LabelField(labelUseConstructor, EditorStyles.boldLabel);

            ImportLayerData reconstructLayer = null;

            if (lastSelectedLayer != null)
            {
                reconstructLayer = GetLayerData(lastSelectedLayer);
                if (reconstructLayer != null && reconstructLayer.Childs.Count == 0)
                {
                    reconstructLayer = null;
                }
            }

            selectedReconstructor = EditorGUILayout.Popup(labelSelConstructor,
                                                          selectedReconstructor,
                                                          dropdownReconstruct);

            SpriteAlignUI.DrawGUILayout(labelDocAlign, importSettings.DocAlignment,
                                        alignment =>
            {
                importSettings.DocAlignment = alignment;
                if (alignment != SpriteAlignment.Custom)
                {
                    importSettings.DocPivot = PsdImporter.AlignmentToPivot(alignment);
                }
                Repaint();
            });

            if (importSettings.DocAlignment == SpriteAlignment.Custom)
            {
                EditorGUI.indentLevel++;
                importSettings.DocPivot = EditorGUILayout.Vector2Field(labelDocPivot, importSettings.DocPivot);
                EditorGUI.indentLevel--;
            }

            bool           canReconstruct        = reconstructLayer != null;
            IReconstructor reconstructorInstance = null;

            if (canReconstruct)
            {
                if (selectedReconstructor > -1 && selectedReconstructor < reconstructors.Length)
                {
                    reconstructorInstance = reconstructors[selectedReconstructor];
                    canReconstruct        = reconstructorInstance.CanReconstruct(Selection.activeGameObject);
                }
                else
                {
                    canReconstruct = false;
                }
            }

            if (canReconstruct)
            {
                string strButton = string.Format("Build {0} as {1}", reconstructLayer.name, reconstructorInstance.DisplayName);
                if (GUILayout.Button(strButton, bigButton))
                {
                    GetLayerData(lastSelectedLayer);
                    PsdImporter.Reconstruct(importFile, importSettings, reconstructLayer,
                                            importSettings.DocPivot, reconstructorInstance);
                }
            }
            else
            {
                string helpMessage = "Select a layer group";
                if (reconstructLayer != null && reconstructorInstance != null)
                {
                    helpMessage = reconstructorInstance.HelpMessage;
                }
                EditorGUILayout.HelpBox(helpMessage, MessageType.Info);
            }
        }
コード例 #4
0
ファイル: PsdImportWindow.cs プロジェクト: RFPadilha/HPS1-Jam
        private void DrawImportSettings()
        {
            using (var check = new EditorGUI.ChangeCheckScope())
            {
                showImportSettings = EditorGUILayout.Foldout(showImportSettings, labelShowImport, styleBoldFoldout);
                if (check.changed)
                {
                    Rect window = position;
                    int  expand = 165;
                    window.yMax += showImportSettings ? expand : -expand;
                    position     = window;
                }
            }

            if (showImportSettings == false)
            {
                return;
            }

            EditorGUI.indentLevel++;
            EditorGUI.BeginDisabledGroup(importFile == null);

            EditorGUILayout.Space();

            EditorGUI.BeginChangeCheck();

            DrawPathPicker();

            importSettings.fileNaming = (NamingConvention)EditorGUILayout.EnumPopup(labelFileNaming, importSettings.fileNaming);

            if (importSettings.fileNaming != NamingConvention.LayerNameOnly)
            {
                EditorGUI.indentLevel++;
                importSettings.groupMode = (GroupMode)EditorGUILayout.EnumPopup(labelGrpMode, importSettings.groupMode);
                EditorGUI.indentLevel--;
            }

            EditorGUILayout.Space();

            importSettings.PackingTag = EditorGUILayout.TextField(labelPackTag, importSettings.PackingTag);
            importPPU = EditorGUILayout.FloatField(labelPixelUnit, importPPU);

            SpriteAlignUI.DrawGUILayout(labelAlignment, importSettings.DefaultAlignment, newAlign =>
            {
                importSettings.DefaultAlignment = newAlign;
                settingsChanged = true;
                ApplyDefaultSettings();
            });

            if (importSettings.DefaultAlignment == SpriteAlignment.Custom)
            {
                using (new EditorGUILayout.HorizontalScope())
                {
                    GUILayout.Space(EditorGUIUtility.labelWidth);
                    importSettings.DefaultPivot = EditorGUILayout.Vector2Field(GUIContent.none, importSettings.DefaultPivot);
                }
            }

            importSettings.ScaleFactor = (ScaleFactor)EditorGUILayout.EnumPopup(labelScale, importSettings.ScaleFactor);
            //importSettings.AutoImport = EditorGUILayout.Toggle(labelAutoImport, importSettings.AutoImport);

            if (EditorGUI.EndChangeCheck())
            {
                settingsChanged = true;
                importSettings.DefaultPivot.x = Mathf.Clamp01(importSettings.DefaultPivot.x);
                importSettings.DefaultPivot.y = Mathf.Clamp01(importSettings.DefaultPivot.y);
                ApplyDefaultSettings();
            }

            using (new EditorGUI.DisabledGroupScope(settingsChanged == false))
            {
                if (GUILayout.Button("Apply"))
                {
                    WriteImportSettings();
                }
            }

            EditorGUI.EndDisabledGroup();
            EditorGUI.indentLevel--;
        }