Je veux créer un outil similaire à l'outil Terrain d'Unity, qui a de jolis boutons à bascule dans l'inspecteur:
Comment puis-je réaliser une conception similaire à celle-ci? Je sais comment créer des boutons normaux et d'autres composants d'interface utilisateur dans l'inspecteur, mais je ne trouve pas suffisamment d'informations pour faire basculer les boutons.
Jusqu'à présent, j'ai utilisé des bascules normales qui produisent une case à cocher:
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;
}
Régler la bascule GUIStyle
sur "Button" ne produit pas le résultat souhaité. Le contenu du texte ou de l'image va à gauche du bouton au lieu de l'intérieur.
var tmp = EditorGUILayout.Toggle( SetAmountFieldContent, _setValue, "Button" );
De plus, aucune des options trouvées dans GUISkin ne semble aider.
_smoothValue = !GUILayout.Button( SetAmountFieldContent, _smoothValue ? ToggleButtonStyleToggled : ToggleButtonStyleNormal)
, au lieu d'avoir deux booléens? Cela fonctionne bien pour moi et le code semble proche de l'utilisation du bouton / bascule d'unité standard