You can add attributes to your Component's properties to change how they look in the editor.
[Hide]
Hides the property from the editor. Will still be a property, and will still save and load - but won't be visible.
[RequireComponent]
Added to a property containing a component. The component will be created if it doesn't exist.
[Group( "Helpers" )]
Will create a group box and add this property to that group. Mark multiple properties to add them to the same group.
[ToggleGroup( "UseHelpers" )]
A group that has a checkbox to turn it on and off. The name should match the name of a bool property to hold the state.
[Title( "My New Title" )]
Change the title of the property in editor, instead of using the property name.
[Feature( "Helpers" )]
Adds this property to a separate feature tab. All other properties will be in a tab called General.
[FeatureEnabled( "Helpers" )]
Should be used on a bool property. This allows you to turn the feature on and off by removing or adding the tab.
[Order( 100 )]
Change the order of this property in the editor. Their position in the source usually orders them.
[ShowIf( "PropertyName", 3 )]
Only show this property if another property is equal to the value.
[HideIf( "PropertyName", 3 )]
Hide this property if another property is equal to the value.
[Range( 0, 100 )]
When used on a number property, will convert it to a slider with a min and max value.
[Space]
Add a space above the property.
[Header( "My Header" )]
Add a header above the property.
[ReadOnly]
Don't allow changing this property.
[Flags]
Indicates that an enum can be treated as a set of flags. Allows for selecting multiple flags at once from the dropdown instead of just selecting one.
[InlineEditor]
Tell the editor to try to display inline editing for this property, rather than hiding it behind a popup.
(useful for custom Classes/Structs)
[WideMode]
Fill the width of the editor with the widget and put the label above instead of to the left of the ControlWidget. Can optionally hide/remove the label entirely.
[Placeholder( "Your mother's maiden name" )]
When used on a string property, will show this text when it's empty.
[TextArea]
When used on a string property, show a multiline text area instead of a single-line text edit.
[FilePath]
When used on a string property, creates a File Picker allowing you to select any file, with an optional Extension you can use to specify certain file type(s).
[ImageAssetPath]
When used on a string property, creates a ResourceControlWidget allowing you to select an image file, setting the string's value to the path of the image.
[MapAssetPath]
When used on a string property, creates a ResourceControlWidget allowing you to select a vmap file, setting the string's value to the path of the map.
[FontName]
When used on a string property, creates a Font dropdown allowing you to easily select a font by it's name.
[InputAction]
When used on a string property, creates an Input dropdown comprised of all Inputs configured in your Project Settings, allowing you to easily select an Input by it's name.
[TimeRange]
Used to specify a default or clamped time/x-range on a curve
[ValueRange]
Used to specify a default or clamped value/y-range on a curve
[SingleAction]
When used on any ActionGraph-compatible property, it will only show a single action to edit instead of a list that allows you to create multiple