using UnityEditor;
using UnityEngine;
using UnityEditor.UIElements;
using UnityEngine.UIElements;
namespace UnityEditor.UI
{
///
/// Custom inspector for CanvasGroup Component using UIElements
///
[CustomEditor(typeof(CanvasGroup))]
[CanEditMultipleObjects]
public class CanvasGroupInspector : Editor
{
///
/// Creates the UIElements-based inspector GUI for the CanvasGroup component.
///
/// A root VisualElement containing the inspector fields.
public override VisualElement CreateInspectorGUI()
{
var root = new VisualElement();
var alphaProp = serializedObject.FindProperty("m_Alpha");
var alphaField = new Slider("Alpha", 0f, 1f);
alphaField.tooltip = "Controls the transparency of the CanvasGroup. 0 = fully transparent, 1 = fully opaque.";
alphaField.showInputField = true;
alphaField.BindProperty(alphaProp);
root.Add(alphaField);
root.Add(new PropertyField(serializedObject.FindProperty("m_Interactable"), "Interactable")
{
tooltip = "Enable this to make UI elements under this CanvasGroup interactable."
});
root.Add(new PropertyField(serializedObject.FindProperty("m_BlocksRaycasts"), "Blocks Raycasts")
{
tooltip = "Enable this to block raycasts and prevent clicks from passing through."
});
root.Add(new PropertyField(serializedObject.FindProperty("m_IgnoreParentGroups"), "Ignore Parent Groups")
{
tooltip = "Enable this to ignore settings inherited from parent CanvasGroups."
});
return root;
}
}
}