유니티 엔진 (Unity Engine)
[Unity C#] Editor 에서 버튼 스타일 토글 UI 만들기
원소랑
2025. 3. 14. 02:31
체크박스 형태의 토글이 기본형이지만, 종종 버튼 스타일로 여러 개 버튼을 열거하고 하나의 버튼만 선택된 상태로 만들어야 할 때가 있습니다. 아래 정렬 스타일 버튼처럼.
GUILayout.Toggle() 함수를 활용하면 되는데, 적절한 메소드와 스타일을 넘겨줘야 합니다.
아래 두 가지 스타일의 코드 스니펫으로 활용할 수 있습니다.
Style A 는 문자열 상수로 GUIStyle 을 인자로 전달하고,
Style B 는 GUIStyle 을 명시적으로 생성해서 전달합니다.
// Style A
for (int i = 0; i < COUNT; i++)
{
bool isSelected = currentIndex == i;
bool newState = GUILayout.Toggle(isActive, $"Option {i}", "Button");
if (newState && !isSelected)
{
currentIndex = i;
// Do something
}
}
// Style B
for (int i = 0; i < COUNT; i++)
{
bool isSelected = currentIndex == i;
// 토글 버튼 스타일 적용
GUIStyle buttonStyle = new GUIStyle(GUI.skin.button);
if (isSelected)
{
buttonStyle.normal = buttonStyle.active; // 활성화된 상태 유지
}
// 토글 버튼 생성
if (GUILayout.Toggle(isSelected, $"Option {i}", buttonStyle))
{
currentIndex = i;
// Do something
}
}
이렇게 작성하면 체크박스처럼 동작하는 단일 선택 옵션 버튼을 생성할 수 있습니다.
https://docs.unity3d.com/6000.0/Documentation/ScriptReference/GUILayout.Toggle.html
Unity - Scripting API: GUILayout.Toggle
Declaration public static bool Toggle(bool value, Texture image, params GUILayoutOption[] options); Declaration public static bool Toggle(bool value, string text, params GUILayoutOption[] options); Declaration public static bool Toggle(bool value, GUIConte
docs.unity3d.com
728x90
반응형