Я хочу создать инструмент, аналогичный инструменту Unity's Terrain, в инспекторе которого есть несколько удобных кнопок переключения:
Как я могу добиться подобного дизайна для этого? Я знаю, как создавать обычные кнопки и другие компоненты пользовательского интерфейса в инспекторе, но не могу найти достаточно информации, чтобы кнопки переключались.
До сих пор я использовал обычные переключатели, которые производят флажок:
var tmp = EditorGUILayout.Toggle( SetAmountFieldContent, _setValue );
if ( tmp != _setValue )
{
_setValue = tmp;
if ( _setValue )
_smoothValue = false;
}
tmp = EditorGUILayout.Toggle( SmoothValueFieldContent, _smoothValue );
if ( tmp != _smoothValue )
{
_smoothValue = tmp;
if ( _smoothValue )
_setValue = false;
}
Установка переключателя GUIStyle
в положение «Кнопка» не дает желаемого результата. Текст или изображение идет слева от кнопки, а не внутри.
var tmp = EditorGUILayout.Toggle( SetAmountFieldContent, _setValue, "Button" );
Также ни один из найденных вариантов в GUISkin , похоже, не помогает.
_smoothValue = !GUILayout.Button( SetAmountFieldContent, _smoothValue ? ToggleButtonStyleToggled : ToggleButtonStyleNormal)
вместо двух логических значений? Это хорошо работает для меня, и код выглядит близко к использованию кнопки / переключателей стандартного единства