Configures how the Inspector presents a serialized Dictionary<TKey, TValue> identified by type, for dictionaries that have no field to decorate.
DictionaryDisplayForType is the assembly-level form of DictionaryDisplayAttribute. It has the same presentation settings: layout, keyLabel, valueLabel, and keyColumnFraction. The difference is that you name the dictionary to configure with a typeof argument instead of attaching the attribute to a field.
This attribute targets assemblies, so you apply it with an assembly-level attribute declaration. It's the only way to configure a dictionary that you can't attach a field attribute to, such as the inner dictionary of a Dictionary<int, Dictionary<string, float>> or a third-party dictionary type.
The targetType you pass determines which dictionaries the attribute matches and which settings apply:
Dictionary<string, float>, matches that exact dictionary and applies the layout, labels, and key-column fraction.When more than one source can set a dictionary's presentation, Unity uses the first source that applies, from highest precedence to lowest:
DictionaryDisplayForType on the exact Dictionary<TKey, TValue> sets the layout, labels, and width.DictionaryDisplayForType on the value type, then on the key type, sets the layout only.using System.Collections.Generic; using UnityEngine;
// Label and lay out the inner Dictionary<string, float> of a nested dictionary, // which has no field to decorate directly. [assembly: DictionaryDisplayForType(typeof(Dictionary<string, float>), layout = DictionaryLayout.OneColumnWithValueVisible, keyLabel = "Bone", valueLabel = "Weight", keyColumnFraction = 0.4f)]
public class Rig : MonoBehaviour { [SerializeField] private Dictionary<int, Dictionary<string, float>> boneWeightsPerLod = new Dictionary<int, Dictionary<string, float>>(); }
| Property | Description |
|---|---|
| targetType | The type this attribute configures: a fully specified dictionary type (for example, Dictionary<string, float>), or a key or value element type. |
| Constructor | Description |
|---|---|
| DictionaryDisplayForTypeAttribute | Creates an attribute that configures the dictionary identified by targetType. |
| Property | Description |
|---|---|
| keyColumnFraction | The initial width of the key column, as a fraction of the total dictionary width. Clamped to the range [0.01, 0.99]. |
| keyLabel | The text displayed above the key column. |
| layout | The column layout the Inspector uses to present the dictionary. |
| valueLabel | The text displayed above the value column. |