[Unity6] Custom Editor (ToggleGroup)

์—…๋ฐ์ดํŠธ:

์นดํ…Œ๊ณ ๋ฆฌ:

ํƒœ๊ทธ: ,


Toggle ChangeSkin ToggleGroup



Toggle

Toggle : Label์ด ์™ผ์ชฝ ์ฒดํฌ๋ฐ•์Šค ์˜ค๋ฅธ์ชฝ
result = EditorGUILayout.Toggle(string label, bool value)
ย 
ToggleLeft : Label์ด ์˜ค๋ฅธ์ชฝ ์ฒดํฌ๋ฐ•์Šค ์™ผ์ชฝ
result = EditorGUILayout.ToggleLeft(string label, bool value)

Image

Toggle
private bool toggleValue = false;

toggleValue = EditorGUILayout.Toggle("Toggle", toggleValue);
toggleValue = EditorGUILayout.ToggleLeft("Toggle Left", toggleValue);



ChangeSkin (Button Toggle)

GUI.skin.toggle, GUI.skin.Button ์„ ํ†ตํ•ด ๊ธฐ๋Šฅ๊ณผ ๋‹ค๋ฅด๊ฒŒ ์™ธํ˜•์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.
GUILayout์€ ๋‚ด๋ถ€์— ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€ ์ถœ๋ ฅ ๊ฐ€๋Šฅ

์œ ๋‹ˆํ‹ฐ ํ…Œ์ŠคํŠธ ๋ฒ„ํŠผ
Image
Image

ChangeSkin
public void ChangeSkin(GUIStyle titleStyle)
{
    EditorGUILayout.Space(18);
    EditorGUILayout.LabelField("Button Style Toggle", titleStyle);

    // Label ์ด์ง€๋งŒ ์Šคํƒ€์ผ๋งŒ ํ† ๊ธ€ ์ž‘๋™X
    GUILayout.Label("์•ˆ๋…•ํ•˜์„ธ์š”.", GUI.skin.toggle);

    // ๋ฒ„ํŠผ์ด์ง€๋งŒ ์Šคํƒ€์ผ์€ ํ† ๊ธ€ ๋ˆ„๋ฅด๋ฉด ON ๋งˆ์šฐ์Šค๋•Œ๋ฉด OFF
    if (GUILayout.Button(new GUIContent("Button"), GUI.skin.toggle)) { Debug.Log("๋ฒ„ํŠผ."); }

    // ํ† ๊ธ€์ด์ง€๋งŒ ์Šคํƒ€์ผ์€ ๋ฒ„ํŠผ 
    toggleValue = EditorGUILayout.Toggle("Toggle", toggleValue, GUI.skin.button);

    // ๋‚ด๋ถ€์— ์ด๋ฏธ์ง€, ํ…์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— EditorGUILayout ๋Œ€์‹  GUILayout ์‚ฌ์šฉ
    toggleValue = GUILayout.Toggle(toggleValue, toggleValue ? "ON" : "OFF", GUI.skin.button);
}



ToggleGroup (Toolbar, SelectionGrid)

์œ ๋‹ˆํ‹ฐ Scene View์— Toolbar ์ฒ˜๋Ÿผ Button์™ธํ˜•์˜ Toggle์„ ๊ทธ๋ฃน์œผ๋กœ ๊ด€๋ฆฌํ•ด ๊ทธ๋ฃน ์†Œ์† ํ† ๊ธ€์ค‘ ํ•˜๋‚˜๋งŒ ์„ ํƒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
GUILayout ํด๋ž˜์Šค๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ.
ย 
Toolbar(int, string[], GUIStyle) : ๊ฐ€๋กœ๋กœ ์ •๋ ฌ๋˜๋Š” ๋ฒ„ํŠผ ํ˜•ํƒœ์˜ Toggle Group
SelectionGrid(int, string[], int, GUIStyle) : ๊ฐ€๋กœ/์„ธ๋กœ ๊ฒฉ์ž๋กœ ์ •๋ ฌ๋˜๋Š” ๋ฒ„ํŠผ ํ˜•ํƒœ์˜ Toggle Group
ย  3๋ฒˆ์งธ int ๋กœ x์ถ•์— ๋ฐฐ์น˜๋˜๋Š” ๊ฐœ์ˆ˜ ์„ค์ •

Image

ToggleGroup
public void ToggleGroup(GUIStyle titleStyle)
{
    EditorGUILayout.Space(18);
    EditorGUILayout.LabelField("Toggle Group", titleStyle);

    EditorGUILayout.BeginHorizontal();
    first = GUILayout.Toggle(first, "1", EditorStyles.miniButtonLeft);
    second = GUILayout.Toggle(second, "2", EditorStyles.miniButtonMid);
    third = GUILayout.Toggle(third, "3", EditorStyles.miniButtonRight);
    EditorGUILayout.EndHorizontal();

    EditorGUILayout.LabelField("Toolbar", titleStyle);
    selected = GUILayout.Toolbar(selected, new string[] { "1", "2", "3" });
    selected = GUILayout.Toolbar(selected, new string[] { "1", "2", "3" }, EditorStyles.toolbarButton);

    EditorGUILayout.LabelField("SelectionGrid", titleStyle);
    selected = GUILayout.SelectionGrid(selected, new string[] { "1", "2", "3" }, 1);
    selected = GUILayout.SelectionGrid(selected, new string[] { "1", "2", "3" }, 3);
    selected = GUILayout.SelectionGrid(selected, new string[] { "1", "2", "3" }, 1, "PreferencesKeysElement");
}







์ด๊ฒƒ์ €๊ฒƒ ๋ฉ”๋ชจ

๊ฐ€๋กœ์ •๋ ฌ(BeginHorizontal)

Editor UI๋ฅผ ๊ฐ€๋กœ๋กœ ์ •๋ ฌํ•˜๋Š” ๋ฉ”์†Œ๋“œ

Toolbar
EditorGUILayout.BeginHorizontal();
first = GUILayout.Toggle(first, "1", EditorStyles.miniButtonLeft);
second = GUILayout.Toggle(second, "2", EditorStyles.miniButtonMid);
third = GUILayout.Toggle(third, "3", EditorStyles.miniButtonRight);
EditorGUILayout.EndHorizontal();



PreferencesKeysElement

๋ฒ„ํŠผ ํ…Œ๋‘๋ฆฌ์—†์ด ํ† ๊ธ€ํ˜•์‹
์œ ๋‹ˆํ‹ฐ ์„ค์ •ํƒญ ๊ณณ๊ณณ์—์„œ ์‚ฌ์šฉ๋จ

Image

Toolbar
selected = GUILayout.SelectionGrid(selected, new string[] { "1", "2", "3" }, 1, "PreferencesKeysElement");







์žก๋‹ด, ์ผ๊ธฐ?

Toggle, ToggleGroup, Skin
Image




๐Ÿ“”

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ