[Unity6] Custom Editor (Slider, HelpBox, Knob, ProgressBar)

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

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

ํƒœ๊ทธ: ,


Slider, HelpBox, Knob, IndentLevel, ProgressBar



Slider

EditorGUILayout
int EditorGUILayout.IntSlider(string, int, int, int) : int ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Slider
float EditorGUILayout.FloatSlider(string, float, float, float) : float ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Slider
void EditorGUILayout.MinMaxSlider(string, ref float, ref float, float, float) : min ~ max ๋ฒ”์œ„์˜ ๊ฐ’์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” Slider
ย 
GUILayout
float GUILayout.HorizontalSlider(float, float, float) : float ํƒ€์ž… ๊ฐ€๋กœ Slider
float GUILayout.VerticalSlider(float, float, float) : float ํƒ€์ž… ์„ธ๋กœ Slider

Image

Slider
intValue = EditorGUILayout.IntSlider("Int Slider", intValue, 0, 100);
floatValue = EditorGUILayout.Slider("Float Slider", floatValue, 0f, 10f);
EditorGUILayout.MinMaxSlider("MinMax Slider", ref minValue, ref maxValue, 0f, 10f);

floatValue = GUILayout.HorizontalSlider(floatValue, 0f, 10f);
floatValue = GUILayout.VerticalSlider(floatValue, 0f, 10f, GUILayout.Height(64));



HelpBox

Console View์— ๋กœ๊ทธ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ์ •๋ณด, ๊ฒฝ๊ณ , ์—๋Ÿฌ ๋กœ๊ทธ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฐ•์Šค ์ƒ์„ฑ
EditorGUILayout.HelpBox(string message, MessageType type);

Image

HelpBox
EditorGUILayout.HelpBox("Info", MessageType.Info);
EditorGUILayout.HelpBox("Warning", MessageType.Warning);
EditorGUILayout.HelpBox("Error", MessageType.Error);



Knob

Drag๋กœ ์กฐ์ ˆ ๊ฐ€๋Šฅํ•œ ์›ํ˜• ๊ฒŒ์ด์ง€
float result = EditorGUILayout.knob(Vector2 knobSize, float value, float minValue, float MaxValue, strin unit, Color backgroundColor, Color activeColor, bool showValue);
knobSize - ๊ฒŒ์ด์ง€ ํฌ๊ธฐ
unit - ์ถœ๋ ฅํ•  ํ…์ŠคํŠธ
showValue - ๊ฒŒ์ด์ง€ ์ˆ˜์น˜๋ฅผ ์ถœ๋ ฅํ• ์ง€ ์—ฌ๋ถ€

Image

Knob
floatValue = EditorGUILayout.Knob(Vector2.one * 64, floatValue, 0f, 10f, "๊ฒŒ์ด์ง€", Color.black, Color.red, true);



ProgressBar

0.0 ~ 1.0 ์‚ฌ์ด์˜ float ๋ฐ์ดํ„ฐ๋กœ ์ง„ํ–‰๋„ ์ถœ๋ ฅ.
ProgressBar ์ค‘์•™์— text ๋‚ด์šฉ ์ถœ๋ ฅ
EditorGUI๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
void EditorGUI.ProgressBar(Rect position, float value, string text)

Image

ProgressBar
Rect rect = new Rect(0, 400, 300, EditorGUIUtility.singleLineHeight);
EditorGUI.ProgressBar(rect, (float)intValue / 100, $"์ฒด๋ ฅ {intValue}/100");






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

IndentLevel

UI ๋“ค์—ฌ์“ฐ๊ธฐ
int EditorGUI.indentLevel{set; get;}

Image

IndentLevel
EditorGUI.indentLevel++;
EditorGUILayout.HelpBox("Info", MessageType.Info);
EditorGUI.indentLevel += 10;
EditorGUILayout.HelpBox("Warning", MessageType.Warning);
EditorGUI.indentLevel -= 11;
EditorGUILayout.HelpBox("Error", MessageType.Error);







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

Slider, HelpBox, Knob, IndentLevel, ProgressBar
Image




๐Ÿ“”

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