mrtk_developmentreleases/2.0.0releases/2.1.0releases/2.2.0

    Show / Hide Table of Contents

    Class SystemTypeReferencePropertyDrawer

    Custom property drawer for SystemType properties.

    Inheritance
    Object
    SystemTypeReferencePropertyDrawer
    Implements
    PropertyDrawer
    Namespace: Microsoft.MixedReality.Toolkit.Editor
    Assembly: cs.temp.dll.dll
    Syntax
    public class SystemTypeReferencePropertyDrawer : PropertyDrawer, PropertyDrawer

    Properties

    ExcludedTypeCollectionGetter

    Gets or sets a function that returns a collection of types that are to be excluded from drop-down. A value of null specifies that no types are to be excluded.

    Declaration
    public static Func<ICollection<Type>> ExcludedTypeCollectionGetter { get; set; }
    Property Value
    Type Description
    Func<ICollection<Type>>
    Remarks

    This property must be set immediately before presenting a class type reference property field using EditorGUI.PropertyField since the value of this property is reset to null each time the control is drawn.

    Since filtering makes extensive use of Contains(T) it is recommended to use a collection that is optimized for fast look ups such as HashSet for better performance.

    Examples

    Exclude a specific type from being selected:

    private SerializedProperty someTypeReferenceProperty;
    

    public override void OnInspectorGUI() { serializedObject.Update();

    ClassTypeReferencePropertyDrawer.ExcludedTypeCollectionGetter = GetExcludedTypeCollection;
    EditorGUILayout.PropertyField(someTypeReferenceProperty);
    
    serializedObject.ApplyModifiedProperties();
    

    }

    private ICollection<Type> GetExcludedTypeCollection() { var set = new HashSet<Type>(); set.Add(typeof(SpecialClassToHideInDropdown)); return set; }

    ExcludedTypeCollectionGetter

    Gets or sets a function that returns a collection of types that are to be excluded from drop-down. A value of null specifies that no types are to be excluded.

    Declaration
    public static Func<ICollection<Type>> ExcludedTypeCollectionGetter { get; set; }
    Property Value
    Type Description
    Func<ICollection<Type>>
    Remarks

    This property must be set immediately before presenting a class type reference property field using EditorGUI.PropertyField since the value of this property is reset to null each time the control is drawn.

    Since filtering makes extensive use of Contains(T) it is recommended to use a collection that is optimized for fast look ups such as HashSet for better performance.

    Examples

    Exclude a specific type from being selected:

    private SerializedProperty someTypeReferenceProperty;
    

    public override void OnInspectorGUI() { serializedObject.Update();

    ClassTypeReferencePropertyDrawer.ExcludedTypeCollectionGetter = GetExcludedTypeCollection;
    EditorGUILayout.PropertyField(someTypeReferenceProperty);
    
    serializedObject.ApplyModifiedProperties();
    

    }

    private ICollection<Type> GetExcludedTypeCollection() { var set = new HashSet<Type>(); set.Add(typeof(SpecialClassToHideInDropdown)); return set; }

    Methods

    GetPropertyHeight(SerializedProperty, GUIContent)

    Declaration
    public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
    Parameters
    Type Name Description
    SerializedProperty property
    GUIContent label
    Returns
    Type Description
    Single

    GetPropertyHeight(SerializedProperty, GUIContent)

    Declaration
    public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
    Parameters
    Type Name Description
    SerializedProperty property
    GUIContent label
    Returns
    Type Description
    Single

    OnGUI(Rect, SerializedProperty, GUIContent)

    Declaration
    public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
    Parameters
    Type Name Description
    Rect position
    SerializedProperty property
    GUIContent label

    OnGUI(Rect, SerializedProperty, GUIContent)

    Declaration
    public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
    Parameters
    Type Name Description
    Rect position
    SerializedProperty property
    GUIContent label

    Implements

    PropertyDrawer
    In This Article
    • Properties
      • ExcludedTypeCollectionGetter
      • ExcludedTypeCollectionGetter
    • Methods
      • GetPropertyHeight(SerializedProperty, GUIContent)
      • GetPropertyHeight(SerializedProperty, GUIContent)
      • OnGUI(Rect, SerializedProperty, GUIContent)
      • OnGUI(Rect, SerializedProperty, GUIContent)
    • Implements
    Back to top Generated by DocFX