# VisualElementReference<T>

> Represents a strongly-typed reference to a VisualElement in a PanelRenderer.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine.UIElements](/engine/6000.5/script-reference/unityengine/uielements.md)
* **Assembly:** UnityEngine.UIElementsModule
* **Inherits from:** [VisualElementReference](/engine/6000.5/script-reference/unityengine/uielements/visualelementreference.md)
* **Implements:** [IEquatable\<VisualElementReference>](https://learn.microsoft.com/dotnet/api/system.iequatable-1), [IDisposable](https://learn.microsoft.com/dotnet/api/system.idisposable)

```csharp
public class VisualElementReference<T> : VisualElementReference, IEquatable<VisualElementReference>, IDisposable where T : VisualElement
```

## Constructors

| Constructor                                                                                                                                                                                                                                              | Description                                                                   |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| [VisualElementReference\`1()](/engine/6000.5/script-reference/unityengine/uielements/visualelementreference1/ctor.md#visualelementreference\(\))                                                                                                         | Creates a new empty VisualElementReference.                                   |
| [VisualElementReference\`1(UnityEngine.UIElements.PanelRenderer,UnityEngine.UIElements.AuthoringIdPath)](/engine/6000.5/script-reference/unityengine/uielements/visualelementreference1/ctor.md#visualelementreference\(panelrenderer-authoringidpath\)) | Creates a new VisualElementReference pointing to the given renderer and path. |

## Methods

| Method                                                                                                                                                       | Description                                                                                                                                                                                                                                        |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [RegisterReferenceResolvedCallback](/engine/6000.5/script-reference/unityengine/uielements/visualelementreference1/registerreferenceresolvedcallback.md)     | Registers a callback for when the reference is resolved from the document. When you register a callback, if the reference is already resolved, the callback is immediately invoked.                                                                |
| [RegisterReferenceUnloadedCallback](/engine/6000.5/script-reference/unityengine/uielements/visualelementreference1/registerreferenceunloadedcallback.md)     | Registers a callback for when the referenced object is unloaded. This occurs when the document is destroyed, such as when a live reload occurs after the VisualTreeAsset changes. At this point, all references are invalid and should be cleared. |
| [UnregisterReferenceResolvedCallback](/engine/6000.5/script-reference/unityengine/uielements/visualelementreference1/unregisterreferenceresolvedcallback.md) | Unregisters a callback for when the reference is resolved from the document.                                                                                                                                                                       |
| [UnregisterReferenceUnloadedCallback](/engine/6000.5/script-reference/unityengine/uielements/visualelementreference1/unregisterreferenceunloadedcallback.md) | Unregisters a callback for when the referenced object is unloaded.                                                                                                                                                                                 |

## Inheritance

**Inherited Members:**

* [VisualElementReference.SetReference(PanelRenderer, AuthoringIdPath)](/engine/6000.5/script-reference/unityengine/uielements/visualelementreference/setreference.md)
* [VisualElementReference.RegisterReferenceResolvedCallback(Action\<VisualElement>)](/engine/6000.5/script-reference/unityengine/uielements/visualelementreference/registerreferenceresolvedcallback.md)
* [VisualElementReference.UnregisterReferenceResolvedCallback(Action\<VisualElement>)](/engine/6000.5/script-reference/unityengine/uielements/visualelementreference/unregisterreferenceresolvedcallback.md)
* [VisualElementReference.RegisterReferenceUnloadedCallback(Action\<VisualElement>)](/engine/6000.5/script-reference/unityengine/uielements/visualelementreference/registerreferenceunloadedcallback.md)
* [VisualElementReference.UnregisterReferenceUnloadedCallback(Action\<VisualElement>)](/engine/6000.5/script-reference/unityengine/uielements/visualelementreference/unregisterreferenceunloadedcallback.md)
* [VisualElementReference.Equals(VisualElementReference)](/engine/6000.5/script-reference/unityengine/uielements/visualelementreference/equals.md)
* [VisualElementReference.panelRenderer](/engine/6000.5/script-reference/unityengine/uielements/visualelementreference/panelrenderer.md)
* [VisualElementReference.authoringPath](/engine/6000.5/script-reference/unityengine/uielements/visualelementreference/authoringpath.md)
