# Field attributes

### DataObjectDropdown

<div align="left"><figure><img src="/files/LEalrOwHBCDCBEeN8A2R" alt=""><figcaption></figcaption></figure></div>

Enables a useful dropdown field with additional features such as unassign, create new and find DataObject. When using this attribute outside of a DataObject - like in a MonoBehaviour, it is necessary to add a reference to the DataLibrary object and pass the name of the DataLibrary field.

* dataLibraryFieldName: the name of the data library field
* includeSubtypes: if true, dropdown also shows derived types
* tooltip: set an additional etooltip

```csharp
public class Enemy : MonoBehaviour
{
    public DataLibrary data;
    
    [DataObjectDropdown("data")]
    public EnemyData enemyData;
}
```

### ExposeToInspector

<figure><img src="/files/0fNhlEeTp2walE4TJefV" alt=""><figcaption></figcaption></figure>

Use the ExposeToInspector attribute to mark fields which should be displayed in the popup inspector on the DataObjectDropdown property drawer.

```csharp
public EnemyData : DataObject
{
       [ExposeToInspector]
       public int health;
       [ExposeToInspector]
       public int speed;
       [ExposeToInspector]
       public GameObject prefab
       
       public Vector3 position;
}
```

### DatabrainSerialize

Mark fields which should be serialized by Databrain to a file with the \[DatabrainSerialize] attribute. Only fields of DataObjects which are in the runtime-DataLibrary will be serialized.

<pre class="language-csharp"><code class="lang-csharp"><strong>[DataObjectAddToRuntimeLibrary]
</strong><strong>public EnemyData : DataObject
</strong>{
       [ExposeToInspector]
       [DatabrainSerialize]
       public int health;
       [ExposeToInspector]
       [DatabrainSerialize]
       public int speed;
       [ExposeToInspector]
       public GameObject prefab
       
       [DatabrainSerialize]
       public Vector3 position;
}
</code></pre>

### Border

<div align="left"><figure><img src="/files/6PwEg9asxg3sKtRfOtc9" alt=""><figcaption></figcaption></figure></div>

Set a border around a field

* borderWidth: The width of the border
* color: The color of the border

### HorizontalLine

<div align="left"><figure><img src="/files/HxbVZP6pAuyTNZI4ig88" alt=""><figcaption></figcaption></figure></div>

Create a horizontal line with custom width and color

* height: height of the line
* color: color of the line (DatabrainColor)

### Dropdown

<div align="left"><figure><img src="/files/c6J6j55ql6263bIZIUjv" alt=""><figcaption></figcaption></figure></div>

Create a dropdown selection

```csharp
// string
private List<string> dropdownOptions = new List<string> { "A", "B", "C" };

[Dropdown("dropdownOptions")]
public string dropdown;

// integer
private List<int> dropdownIntOptions = new List<int> { 0, 1, 2 };

[Dropdown("dropdownIntOptions")]
public int dropdownNumber;
```

### Foldout

Group fields by foldouts (only works in the Databrain editor)

```csharp
[Foldout("curves")]
public AnimationCurve curve1;
[Foldout("curves")]
public AnimationCurve curve2;

[Foldout("Numbers")]
public int numberOne;
[Foldout("Numbers")]
public int numberTwo;
```

### InfoBox

<div align="left"><figure><img src="/files/m1B57Y3iMeztRcqdyzPl" alt=""><figcaption></figcaption></figure></div>

Shows an info box.

* infoBoxtype: The type of the infoBox (InfoBoxType.Normal / InfoBoxType.Warning / InfoBoxType.Error
* text: The text message

### EnumFlags

<div align="left"><figure><img src="/files/3CsFD42UzrCFvmpy6YIf" alt=""><figcaption></figcaption></figure></div>

Shows an enum selection toggle group for choosing multiple enums.

```csharp
public enum TerrainType
{
    none = 0,
    sand = 1,
    earth = 2,
    water = 4,
    rock = 8
}

[EnumFlags]
public TerrainType terrainType;
```

### Hide

Hides a field

### Layer

Shows a layer dropdown.

```csharp
[Layer]
public string layer;
[Layer]
public int layerInt;
```

### Slider

Create a slider with min and max value

### Scene

Create a scene dropdown field

### ShowAssetPreview

<div align="left"><figure><img src="/files/zTX76oSuv4oOH3o3EpSb" alt=""><figcaption></figcaption></figure></div>

Creates a preview window of assigned game object

* width
* height

### Tag

Creates a tag dropdown field.

```csharp
[Tag]
public string tag;
```

### Textfield

Creates a multiline textfield

### Title

Adds a title to the field with an optional border.

* title
* borderColor
* textColor


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://giantgrey.gitbook.io/databrain/attributes/field-attributes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
