Beispiel #1
0
    // ------------------------------------------------------------------
    // Desc:
    // ------------------------------------------------------------------

    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        if (GUILayout.Button("Edit...", GUILayout.Width(50), GUILayout.Height(20)))
        {
            exBitmapFontEditor editor = exBitmapFontEditor.NewWindow();
            editor.Edit(target);
        }
        GUILayout.Space(5);
        GUILayout.EndHorizontal();
    }
Beispiel #2
0
    // ------------------------------------------------------------------
    // Desc:
    // ------------------------------------------------------------------

    public override void OnInspectorGUI()
    {
        // ========================================================
        // Base GUI
        // ========================================================

        base.OnInspectorGUI();
        GUILayout.Space(20);

        // ========================================================
        //
        // ========================================================

        // DELME {
        // bool needRebuild = false;
        // } DELME end

        EditorGUIUtility.LookLikeInspector();

        // ========================================================
        // pt size
        // ========================================================

        GUI.enabled = false;
        int pt_size = 0;

        if (editSpriteFont.fontInfo != null)
        {
            pt_size = editSpriteFont.fontInfo.size;
        }
        EditorGUILayout.IntField("Pt Size", pt_size);
        GUI.enabled = true;

        // ========================================================
        // Use multiline
        // ========================================================

        editSpriteFont.useMultiline = EditorGUILayout.Toggle("Use Multi-Line", editSpriteFont.useMultiline);

        // ========================================================
        // text
        // ========================================================

        GUI.enabled = !inAnimMode;
        if (editSpriteFont.useMultiline == false)
        {
            editSpriteFont.text = EditorGUILayout.TextField("Text", editSpriteFont.text);
        }
        else
        {
            EditorGUILayout.LabelField("Text");
            editSpriteFont.text = EditorGUILayout.TextArea(editSpriteFont.text, EditorGUIUtility.GetBuiltinSkin(EditorSkin.Inspector).textArea);

            // EditorGUIUtility.LookLikeControls ();
            //     EditorGUILayout.LabelField ( "Text", "" );
            //     GUILayout.BeginHorizontal();
            //     GUILayout.Space (30);
            //         if ( Event.current.Equals ( Event.KeyboardEvent ("^return") ) ||
            //              Event.current.Equals ( Event.KeyboardEvent ("%return") ) )
            //         {
            //             GUIUtility.keyboardControl = -1; // remove any keyboard control
            //             Repaint();
            //         }
            //         string newText = EditorGUILayout.TextArea ( editSpriteFont.text, GUILayout.Height(textAreaHeight + 3) );
            //         if ( newText != editSpriteFont.text ) {
            //             editSpriteFont.text = newText;
            //             long lines = exStringHelper.CountLinesInString(editSpriteFont.text);
            //             textAreaHeight = lines * EditorStyles.textField.lineHeight;
            //         }
            //     GUILayout.Space (10);
            //     GUILayout.EndHorizontal();
            // EditorGUIUtility.LookLikeInspector ();
        }
        GUI.enabled = true;

        // ------------------------------------------------------------------
        // Desc:
        // ------------------------------------------------------------------

        if (editSpriteFont.useMultiline)
        {
            GUILayout.BeginHorizontal();
            GUILayout.Space(20);
            editSpriteFont.textAlign
                = (exSpriteFont.TextAlign)GUILayout.Toolbar((int)editSpriteFont.textAlign,
                                                            textAlignStrings,
                                                            GUILayout.Width(150));
            GUILayout.EndHorizontal();
        }

        // ========================================================
        // font info
        // ========================================================

        GUI.enabled = !inAnimMode;
        GUILayout.BeginHorizontal();
        exBitmapFont newFontInfo = (exBitmapFont)EditorGUILayout.ObjectField("Font Info"
                                                                             , editSpriteFont.fontInfo
                                                                             , typeof(exBitmapFont)
                                                                             , false
                                                                             );

        if (editSpriteFont.fontInfo != newFontInfo)
        {
            editSpriteFont.Clear(); // this will prevent leak of mesh
            editSpriteFont.fontInfo = newFontInfo;
        }
        if (GUILayout.Button("Edit...", GUILayout.Width(40), GUILayout.Height(15)))
        {
            exBitmapFontEditor editor = exBitmapFontEditor.NewWindow();
            editor.Edit(editSpriteFont.fontInfo);
        }
        GUILayout.EndHorizontal();
        GUI.enabled = true;

        // ========================================================
        // use kerning
        // ========================================================

        bool haveKerning = (editSpriteFont.fontInfo != null) && (editSpriteFont.fontInfo.kernings.Count != 0);

        GUI.enabled = !inAnimMode && haveKerning;
        editSpriteFont.useKerning = EditorGUILayout.Toggle("Use Kerning", editSpriteFont.useKerning);
        GUI.enabled = true;

        // ========================================================
        // tracking
        // ========================================================

        editSpriteFont.tracking = EditorGUILayout.FloatField("Tracking", editSpriteFont.tracking);

        // ========================================================
        // line spacing
        // ========================================================

        editSpriteFont.lineSpacing = EditorGUILayout.FloatField("Line Spacing", editSpriteFont.lineSpacing);

        ///////////////////////////////////////////////////////////////////////////////
        // normal color option
        ///////////////////////////////////////////////////////////////////////////////

        // ========================================================
        // top color
        // ========================================================

        editSpriteFont.topColor = EditorGUILayout.ColorField("Top Color", editSpriteFont.topColor);

        // ========================================================
        // bot color
        // ========================================================

        editSpriteFont.botColor = EditorGUILayout.ColorField("Bot Color", editSpriteFont.botColor);

        ///////////////////////////////////////////////////////////////////////////////
        // outline option
        ///////////////////////////////////////////////////////////////////////////////

        // ========================================================
        // use outline
        // ========================================================

        editSpriteFont.useOutline = EditorGUILayout.Toggle("Use Outline", editSpriteFont.useOutline);

        GUI.enabled = editSpriteFont.useOutline;
        ++EditorGUI.indentLevel;

        // ========================================================
        // Outline Width
        // ========================================================

        editSpriteFont.outlineWidth = EditorGUILayout.FloatField("Outline Width", editSpriteFont.outlineWidth);

        // ========================================================
        // Outline Color
        // ========================================================

        editSpriteFont.outlineColor = EditorGUILayout.ColorField("Outline Color", editSpriteFont.outlineColor);

        --EditorGUI.indentLevel;
        GUI.enabled = true;

        ///////////////////////////////////////////////////////////////////////////////
        // shadow option
        ///////////////////////////////////////////////////////////////////////////////

        editSpriteFont.useShadow = EditorGUILayout.Toggle("Use Shadow", editSpriteFont.useShadow);

        GUI.enabled = editSpriteFont.useShadow;
        ++EditorGUI.indentLevel;

        // ========================================================
        // Shadow Bias
        // ========================================================

        EditorGUILayout.LabelField("Shadow Bias", "");
        ++EditorGUI.indentLevel;
        float newShadowBiasX = EditorGUILayout.FloatField("X", editSpriteFont.shadowBias.x);
        float newShadowBiasY = EditorGUILayout.FloatField("Y", editSpriteFont.shadowBias.y);

        if (newShadowBiasX != editSpriteFont.shadowBias.x ||
            newShadowBiasY != editSpriteFont.shadowBias.y)
        {
            editSpriteFont.shadowBias = new Vector2(newShadowBiasX, newShadowBiasY);
        }
        --EditorGUI.indentLevel;

        // ========================================================
        // Shadow Color
        // ========================================================

        editSpriteFont.shadowColor = EditorGUILayout.ColorField("Shadow Color", editSpriteFont.shadowColor);

        --EditorGUI.indentLevel;
        GUI.enabled = true;

        // ========================================================
        // Rebuild button
        // ========================================================

        GUI.enabled = !inAnimMode;
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        if (GUILayout.Button("Rebuild...", GUILayout.Height(20)))
        {
            // needRebuild = true;
        }
        GUILayout.EndHorizontal();
        GUI.enabled = true;
        GUILayout.Space(5);

        // if dirty, build it.
        if (!EditorApplication.isPlaying && !AnimationUtility.InAnimationMode())
        {
            // DELME {
            // if ( needRebuild ) {
            //     EditorUtility.ClearProgressBar();
            //     editSpriteFont.Build();
            // }
            // else
            // } DELME end
            if (GUI.changed)
            {
                if (editSpriteFont.meshFilter.sharedMesh != null)
                {
                    editSpriteFont.UpdateMesh(editSpriteFont.meshFilter.sharedMesh);
                }
                EditorUtility.SetDirty(editSpriteFont);
            }
        }
    }
Beispiel #3
0
    public static exBitmapFontEditor NewWindow()
    {
        exBitmapFontEditor newWindow = EditorWindow.GetWindow <exBitmapFontEditor>();

        return(newWindow);
    }