# NodeReference

> Identifies a node inside a visualization NodeReference.Context so visualization changes can be applied to it.

## Definition

* **Type:** Struct
* **Namespace:** [Unity.GraphToolkit.Editor.GraphVisualization](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization.md)
* **Assembly:** UnityEditor
* **Implements:** [IEquatable\<NodeReference>](https://learn.microsoft.com/dotnet/api/system.iequatable-1)

```csharp
public readonly struct NodeReference : IEquatable<NodeReference>
```

## Remarks

Obtain a [NodeReference](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/nodereference.md) from [Context.GetNodeReference](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/context/getnodereference.md). The reference is only meaningful for the [NodeReference.Context](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/nodereference/context.md) that produced it. You can use its properties to set, retrieve, or clear customization for that specific node in the graph canvas. Two [NodeReference](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/nodereference.md) values are equal when they share the same [NodeReference.NodeID](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/nodereference/nodeid.md) and refer to the same [NodeReference.Context](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/nodereference/context.md) instance.

Additional Resources: [NodeReference.Context](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/nodereference/context.md), [Context.GetNodeReference](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/context/getnodereference.md)

## Examples

```csharp
// Obtain a reference to a node by its GUID, then drive its visual state.
using Context context = Registry.CreateVisualizationContext(graphGuid);
NodeReference nodeRef = context.GetNodeReference(nodeID);

// Show a half-filled accent bar on the node.
nodeRef.FillAmount = 50f;

// Replace the static fill with a looping progress animation.
context.Motion.Play(nodeRef, animationSpeed: 1f);

// Stop the animation. The bar remains visible at the previously set fill amount.
context.Motion.Stop(nodeRef);
```

## Properties

| Property                                                                                                               | Description                                                                                        |
| ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| [Context](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/nodereference/context.md)       | Visualization context that produced the current node reference.                                    |
| [FillAmount](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/nodereference/fillamount.md) | The progress fill amount displayed on the referenced node's accent bar, expressed as a percentage. |
| [NodeID](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/nodereference/nodeid.md)         | Unique identifier of the node this reference points to.                                            |

## Methods

| Method                                                                                                                                 | Description                                                                                                                                                              |
| -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [ClearCustomization](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/nodereference/clearcustomization.md) | Clears all customization previously applied to the referenced node, removes any fill amount, and stops any looping animation.                                            |
| [Equals](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/nodereference/equals.md)                         | Indicates whether the current [NodeReference](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/nodereference.md) is equal to another object. |
| [GetHashCode](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/nodereference/gethashcode.md)               | Returns a hash code for the current [NodeReference](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/nodereference.md).                      |

## Operators

| Operator                                                                                                                   | Description                                                                                                                                        |
| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| [operator ==](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/nodereference/op-equality.md)   | Compares two [NodeReference](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/nodereference.md) values for equality.   |
| [operator !=](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/nodereference/op-inequality.md) | Compares two [NodeReference](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/nodereference.md) values for inequality. |
