A reference table to map authoring id paths to VisualElements.
This example shows how to use the <see cref="VisualElementAssetReferenceTable" /> to resolve references to VisualElements after calling CloneTree./>.
using UnityEngine; using UnityEngine.UIElements;
public class VisualElementAssetReferenceTable_CloneTreeExample : MonoBehaviour { // Set via the Inspector public VisualTreeAsset treeAsset;
void Start() { var target = new VisualElement(); treeAsset.CloneTree(target, out var referenceTable);
// Example of retrieving a referenced element by its Authoring Id if (referenceTable.TryGetReference<Button>(new AuthoringIdPath(42), out var myButton)) { Debug.Log("Found button!"); }
// Example of retrieving a the root element if (referenceTable.TryGetReference<VisualElement>(new AuthoringIdPath(0), out var root)) { Debug.Log("Found root!"); }
// Example of retrieving a nested element inside of multiple template instances if (referenceTable.TryGetReference<VisualElement>(new AuthoringIdPath(1, 5, -19, 11, 1), out var nestedElement)) { Debug.Log("Found nested element!"); }
// Release the reference table back to the pool when done referenceTable.ReleaseToPool(); } }
| Property | Description |
|---|---|
| root | The root represents the root element of the PanelRenderer and may not have an authoring ID. |
| Method | Description |
|---|---|
| Dispose | Disposes the VisualElementAssetReferenceTable. Releases all cached references and disposes all nodes. |
| ReleaseToPool | Releases the VisualElementAssetReferenceTable and all its associated nodes back to the pool, making them available for reuse and reducing allocation overhead. |
| TryGetReference | Retrieves the VisualElement associated with the specified authoring ID path. |