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.

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.

Classes

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.