Member Exposer

This module provides attributes that can be applied to serialized and non-serialized members, including functions, properties/accessors and regular fields, for display in the Unity Editor inspector.

Details

Run-Time Attributes

The module provides attributes that can be applied to non-serialized members, including functions, accessors and regular fields, for display in the unity Editor inspector.
These attributes have with a variety of options to automatically generate more complex and dynamic inspectors. Alternatively, ExposedMembers can be manually drawn like SerializedProperties in custom Editors and PropertyDrawers These attributes have no effect on runtime player builds, and require the Editor DLL component of this module, EyE.MemberExposer.UnityEditor.dll , to function in the UnitEditor.

Editor Components

This DLL provides all of this modules functionality. It contains functions to process and store ExposedMember attributes applied to user-defined classes. It also contains functions to draw and handle input for ExposedMembers, in a Unity Editor inspector. These function are combined together into classes that the allows the user to easily draw all the exposed properties an object contains. These are the DefaultExposedMemberEditor, DefaultExposeMemberPropertyDrawer, DefaultExposedMemberExpandablePropertyDrawer

MemberExposer Examples

RuntimeObjects: Examples of ExposeMember Attribute usage

EditorObjects: Examples of how to use classes with Exposed Members in inspectors.

Modules

 Examples- MemberExposer
 
 EyE.MemberExposer.UnityEditor.dll
 This module provides attributes that can be applied to serialized and non-serialized members, including functions, properties/accessors and regular fields, for display in the Unity Editor inspector.
 
 EyE.MemberExposer.dll
 This module provides attributes that can be applied to serialized and non-serialized members, including functions, properties/accessors and regular fields, for display in the Unity Editor inspector.
 

Classes

class  DefaultExposedMemberEditor
 Default Editor for classes utilizing ExposedMemberAttributes.
 
class  DefaultExposedMemberExpandablePropertyDrawer
 This class implements the ExpandableObjectPropertyDrawer, for use with ExposedMembers.

 
class  DefaultExposedMemberPropertyDrawer
 This class implements a default property drawer, for use with ExposedMember Attributes.

 
class  ExposedCollectionMemberElement
 Derived from the ExposedMember class, this version is intended to be used to represent elements of exposed members that are collections.
 
class  MemberExposerFunctions.ExposeDelegatesForType
 Each instance of this class stores three delegates that are used to draw the property(both, an auto layout and Rect-specified, versions), or get it's hight.
The user may choose to create and register one's own instance of this class, specifying custom draw and height functions, for a custom type.
 
class  ExposedMember
 Contains information about an exposed property, such as the name, type, tool-tip, and reflection information.
Has methods to get and set the value of the property by invoking the get and set methods of the exposed-accessor, invoking the exposed function, or if an exposed field, accessing it directly. Stores information about the attributes applied, in code, to the exposed member, which specify how, where and when it should be displayed.
 
class  ExposedObjectMembers
 This class extracts upon creation, and then buffers, all the exposedProperties of a given object.
This buffer can then be easily accessed via the FindProperty function, and Drawn with the various ExposePropertyFunctions.
Or, one can choose to draw all the object's exposed-properties in this buffer at once, using the appropriate ExposeAllProperties function. In total, this class is little more than a convenient wrapper and buffer for the more generic MemberExposerFunctions class.
 
class  ExposeMemberAttribute
 This attribute class has no internal functionality. Rather, it's presence is checked for by the editor-only, EyE.EditorUnity.Tools.ExposedObjectProperties and EyE.EditorUnity.Tools.PropertyExposerFunctions classes which actually implement it.
 
class  ExposeMultiLineAttribute
 This attribute only does anything when applied to strings. It will ensure a multi-line control is used when exposing the string in the editor GUI.
 
class  ExposeRangeAttribAttribute
 This attribute affects exposed properties in the same way that the Unity attribute Range does. However, this attribute may be applied to properties, in addition to fields.
 
class  LimitedListMember
 This class contains static functions for drawing large lists in ExposedMembers. Optimized to draw only the part of the list that is being displayed, it does not slow down the system for large lists.
 
class  MemberExposerFunctions
 This class contains functions that can be used to extract the ExposedMembers of a given object, and functions to draw each, or all of the ExposedMembers found, in a custom editor/property-drawer
 
class  PerExposedMemberBooleans
 Allows each unique Unity.Object to store it's own key/boolean pair.
 
class  PotentialWarningFlag
 This class exists to create a unique type that can be used to identify ExposedMembers with the PotentialWarning flag specified in their ExposeMember attribute.