using System; namespace AdvancedInspector { /// /// Turn off the default Inspector in favor or the Advanced one. /// If false, both may be draw if some members are flagged "Inspect", one after the other... /// [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface, Inherited = true)] public class AdvancedInspectorAttribute : Attribute { private bool inspectDefaultItems = false; /// /// If true, the Advanced Inspector inspect all the item the default Inspector does without adding the [Inspect] attribute. /// You can still add item that Unity would not display by adding the [Inspect] attribute. /// public bool InspectDefaultItems { get { return inspectDefaultItems; } set { inspectDefaultItems = value; } } private bool showScript = true; /// /// Show or hide the script field at the top of the inspector. /// The script field allow to change the type of the object. /// public bool ShowScript { get { return showScript; } set { showScript = value; } } private bool expandable = true; /// /// Is this object expandable in a in-lined context? /// public bool Expandable { get { return expandable; } set { expandable = value; } } public AdvancedInspectorAttribute() { } public AdvancedInspectorAttribute(bool inspectDefaultItems) { this.inspectDefaultItems = inspectDefaultItems; } public AdvancedInspectorAttribute(bool inspectDefaultItems, bool showScript) { this.showScript = showScript; this.inspectDefaultItems = inspectDefaultItems; } } }