Version: 2018.4
  • C#
Experimental: this API is experimental and might be changed or removed in the future.


class in UnityEditor.Experimental.UIElements.GraphView


Inherits from:Experimental.UIElements.VisualElement

Implements interfaces:ISelection, IStyle, ITransform, IUIElementDataWatch, IVisualElementScheduler

Suggest a change


Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.


Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.




Main GraphView class.


canPasteSerializedDataAsk whether or not the serialized data can be pasted.
contentViewContainerMain content container.
deleteSelectionDelete selection callback.
edgesAll edges in the graph.
elementResizedElement resized callback.
elementsAddedToGroupCallback for when GraphElements are added to the group.
elementsInsertedToStackNodeCallback for when GraphElements are inserted into a StackNode.
elementsRemovedFromGroupCallback for when GraphElements are removed from the group.
elementsRemovedFromStackNodeCallback for when GraphElements are removed from a StackNode.
graphElementsAll GraphElements in the graph.
graphViewChangedCallback for when certain changes have occured in the graph. See GraphViewChange.
groupTitleChangedCallback for when a group title is changed.
isReframableWhether or not the selection is reframable.
maxScaleMax zoom level.
minScaleMin zoom level.
nodeCreationRequestCallback for when the user requests to display the node creation window.
nodesAll nodes currently in the graph.
portsAll ports currently in the graph.
referenceScaleReference zoom level.
scaleCurrent graph zoom level.
scaleStepZoom step. See ContentZoomer.scaleStep for details.
selectionAll currently selected elements in the graph.
serializeGraphElementsCallback for serializing graph elements for copy/paste and other actions.
unserializeAndPasteCallback for unserializing graph elements and adding them to the graph.
viewportThe graph's viewport. This is currently just itself.
viewTransformGraph's view transform.
viewTransformChangedView transform changed callback.
zoomerMaxElementCountWithPixelCacheRegenNumber of elements in the graph above which the zoom manipulator will turn off pixel cache regeneration on each tick to avoid performance drops.

Public Methods

AddElementAdd new GraphElement. Should use this instead of Add() for adding GraphElements.
AddLayerAdds a new layer to the GraphView.
AddToSelectionAdd element to selection.
BuildContextualMenuAdd menu items to the contextual menu.
CalculateRectToFitAllCalculate the rectangle size and position to fit all elements in graph.
ClearSelectionClear selection.
DeleteElementsRemove elements from the graph view.
DeleteSelectionDelete selected elements.
FrameAllFocus view all elements in the graph.
FrameNextFocus view on the next element after the one currently selected.
FrameOriginFocus view on the graph's origin.
FramePrevFocus view on the previous element before the one currently selected.
FrameSelectionFocus view on currently selected elements.
GetCompatiblePortsGet all ports compatible with given port.
GetEdgeByGuidGet edge by its GUID.
GetElementByGuidGet any element with a given GUID.
GetNodeByGuidGet node with a given GUID.
GetPortByGuidGet port by its GUID.
OnPersistentDataReadyCalled when persistent data, such as zoom level and selection, is ready to be retrieved and restored.
RemoveElementRemove element from the graph.
RemoveFromSelectionRemove element from selection.
SetupZoomSetup zoom properties.
UpdateViewTransformUpdate the viewport transform.

Protected Methods

CanPasteSerializedDataDefault method for checking if serialized data can be pasted.
DeleteSelectionOperationDefault method for deleting selection.
SerializeGraphElementsDefault method for serializing graph elements.
UnserializeAndPasteOperationDefault method for unserializing elements and pasting.
ValidateTransformValidate the view transform.

Static Methods

CalculateFrameTransformCalculate the view transform based on zoom level and the size of the window or parent.


CanPasteSerializedDataDelegateDelegate for checking if serialized data can be pasted.
DeleteSelectionDelegateDelegate for deleting selection.
ElementResizedElement resized delegate.
GraphViewChangedDelegate used to indicate a change in GraphView usualy done by a Manipulator.
SerializeGraphElementsDelegateDelegate for serializing graph elements.
UnserializeAndPasteDelegateDelegate for unserializing and pasting elements.
ViewTransformChangedView transform changed (zoom) delegate.

Inherited Members

Static Properties

defaultFocusIndexThe default focus index for newly created elements.


canGrabFocusReturn true if the element can be focused.
focusControllerReturn the focus controller for this element.
focusIndexAn integer used to sort focusables in the focus ring. A negative value means that the element can not be focused.
childCount Number of child elements in this object's contentContainer
clippingOptionsShould this element clip painting to its boundaries.
contentContainer child elements are added to this element, usually this
dataWatchAccess to this element data watch interface.
enabledInHierarchyReturns true if the VisualElement is enabled in its own hierarchy.
enabledSelfReturns true if the VisualElement is enabled locally.
persistenceKeyUsed for view data persistence (ie. tree expanded states, scroll position, zoom level).
scheduleRetrieves this VisualElement's IVisualElementScheduler
shadow Access to this element physical hierarchy
styleReference to the style object of this element.
this[int] Access to this element physical hierarchy
tooltipText to display inside an information box after the user hovers the element for a small amount of time.
userDataThis property can be used to associate application-specific user data with this VisualElement.

Public Methods

HandleEventHandle an event, most often by executing the callbacks associated with the event.
HasBubbleUpHandlersReturn true if event handlers for the event propagation BubbleUp phase have been attached on this object.
HasTrickleDownHandlersReturns true if event handlers, for the event propagation TrickleDown phase, are attached to this object.
RegisterCallbackAdds an event handler to the instance. If the event handler has already been registered for the same phase (either TrickleDown or BubbleUp) then this method has no effect.
SendEventSends an event to the event handler.
UnregisterCallbackRemove callback from the instance.
BlurTell the element to release the focus.
FocusAttempt to give the focus to this element.
AddAdd an element to this element's contentContainer
AddStyleSheetPathAdds this stylesheet file to this element list of applied styles
BringToFrontBrings this element to the end of its parent children list. The element will be visually in front of any overlapping sibling elements.
ChildrenReturns the elements from its contentContainer
ClearRemove all child elements from this element's contentContainer
ContainsReturns true if the element is a direct child of this VisualElement
ElementAtRetrieves the child element at position
EnableInClassListEnables or disables the class with the given name.
FindAncestorUserDataSearchs up the hierachy of this VisualElement and retrieves stored userData, if any is found.
FindCommonAncestorFinds the lowest commont ancestor between two VisualElements inside the VisualTree hierarchy
GetEnumeratorAllows to iterate into this elements children
GetFirstAncestorOfTypeWalks up the hierarchy, starting from this element's parent, and returns the first VisualElement of this type
GetFirstOfTypeWalks up the hierarchy, starting from this element, and returns the first VisualElement of this type
GetFullHierarchicalPersistenceKeyCombine this VisualElement's VisualElement.persistenceKey with those of its parents to create a more unique key for use with VisualElement.GetOrCreatePersistentData.
GetOrCreatePersistentDataTakes a reference to an existing persisted object and a key and returns the object either filled with the persisted state or as-is.
HasStyleSheetPathChecks if this stylesheet file is in this element list of applied styles
IndexOfRetrieves the child index of the specified VisualElement.
InsertInsert an element into this element's contentContainer
MarkDirtyRepaintTriggers a repaint of the VisualElement on the next frame.
OverwriteFromPersistedDataOverwrite object from the persistent data store.
PlaceBehindPlaces this element right before the sibling element in their parent children list. If the element and the sibling position overlap, the element will be visually behind of its sibling.
PlaceInFrontPlaces this element right after the sibling element in their parent children list. If the element and the sibling position overlap, the element will be visually in front of its sibling.
RemoveRemoves this child from the hierarchy
RemoveAtRemove the child element located at this position from this element's contentContainer
RemoveFromHierarchyRemoves this element from its parent hierarchy
RemoveStyleSheetPathRemoves this stylesheet file from this element list of applied styles
SavePersistentDataWrite persistence data to file.
SendEventSends an event to the event handler.
SendToBackSends this element to the beginning of its parent children list. The element will be visually behind any overlapping sibling elements.
SetEnabledChanges whether the current VisualElement is enabled or not. When disabled, a VisualElement does not receive most events.
SortReorders child elements from this VisualElement contentContainer.
ToggleInClassListToggles between adding and removing the given class name from the class list.

Protected Methods

OnStyleResolvedCallback when the styles of an object have changed.