Как я могу изменить GUILayout.Button в тексте редактора сценария и цвет и обратно? - PullRequest
0 голосов
/ 20 марта 2019
using UnityEngine;
using System.Collections;
using UnityEditor;

[CustomEditor(typeof(GameObjectInfo))]
public class GameObjectInfoButton : Editor
{
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        GameObjectInfo myScript = (GameObjectInfo)target;

        var style = new GUIStyle(GUI.skin.button);
        style.normal.textColor = Color.red;

        if (myScript.useButton == false)
        {
            GUI.enabled = false;
        }
        else
        {
            GUI.enabled = true;
        }
        if(myScript.objectsinfo.Length == 0)
        {

        }
        else
        {

        }
        if (GUILayout.Button("Search"))
        {
            myScript.Search();
        }

        GUILayout.Space(70);
        if (GUILayout.Button("Compare"))
        {

        }
    }
}

Я хочу, чтобы, если myScript.objectsinfo.Length == 0, то отключить кнопку «Поиск», изменить цвет шрифта на Красный, изменить текст на «Нет результатов».

И если myScript.objectsinfo.Length большойзатем 0 измените кнопку обратно на черный цвет шрифта и текст «Поиск».

И оставьте одну кнопку только на if (GUILayout.Button("Search")), просто переключите цвета и текст в соответствии с myScript.objectsinfo.Length.

1 Ответ

1 голос
/ 20 марта 2019
// Disable the Button
EditorGUI.BeginDisabledGroup(myScript.objectsinfo.Length == 0);
{
    // change fontColor
    var originalFontColor = GUI.contentColor;
    if(myScript.objectsinfo.Length == 0) GUI.contentColor = Color.Red;
    {
        // Change the text
        if (GUILayout.Button(myScript.objectsinfo.Length == 0 ? "No Results" :"Search"))
        {
                myScript.Search();
        }
    }
    // reset back to normal color
    GUI.contentColor = originalFontColor;
}
EditorGUI.EndDisabledGroup();

Я просто добавляю дополнительные { }, чтобы немного очистить код, так как EditorCode обычно становится очень сложным.

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...