[Unity6] Custom Editor (ToggleGroup)
์นดํ ๊ณ ๋ฆฌ: Go Unity
Toggle
ChangeSkin
ToggleGroup
Toggle
Toggle : Label์ด ์ผ์ชฝ ์ฒดํฌ๋ฐ์ค ์ค๋ฅธ์ชฝ
result = EditorGUILayout.Toggle(string label, bool value)
ย
ToggleLeft : Label์ด ์ค๋ฅธ์ชฝ ์ฒดํฌ๋ฐ์ค ์ผ์ชฝ
result = EditorGUILayout.ToggleLeft(string label, bool value)
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์ ๋ด๋ถ์ ํ
์คํธ, ์ด๋ฏธ์ง ์ถ๋ ฅ ๊ฐ๋ฅ
์ ๋ํฐ ํ
์คํธ ๋ฒํผ
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์ถ์ ๋ฐฐ์น๋๋ ๊ฐ์ ์ค์
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
๋ฒํผ ํ
๋๋ฆฌ์์ด ํ ๊ธํ์
์ ๋ํฐ ์ค์ ํญ ๊ณณ๊ณณ์์ ์ฌ์ฉ๋จ
Toolbar
selected = GUILayout.SelectionGrid(selected, new string[] { "1", "2", "3" }, 1, "PreferencesKeysElement");
์ก๋ด, ์ผ๊ธฐ?
Toggle, ToggleGroup, Skin
๋๊ธ๋จ๊ธฐ๊ธฐ