docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class Unit

    Inheritance
    object
    GraphElement<FlowGraph>
    Unit
    Absolute<TInput>
    AddDictionaryItem
    AddListItem
    Add<T>
    And
    Angle<T>
    ApproximatelyEqual
    BinaryComparisonUnit
    Break
    Cache
    ClearDictionary
    ClearList
    Comparison
    Cooldown
    CountItems
    CreateDictionary
    CreateStruct
    CrossProduct<T>
    DictionaryContainsKey
    Distance<T>
    Divide<T>
    DotProduct<T>
    EqualityComparison
    EventUnit<TArgs>
    ExclusiveOr
    Expose
    FirstItem
    GetDictionaryItem
    GetGraph<TGraph, TGraphAsset, TMachine>
    GetGraphs<TGraph, TGraphAsset, TMachine>
    GetListItem
    GraphInput
    GraphOutput
    HasGraph<TGraph, TMacro, TMachine>
    If
    InsertListItem
    LastItem
    Lerp<T>
    ListContainsItem
    Literal
    LoopUnit
    MemberUnit
    MissingType
    Modulo<T>
    MoveTowards<T>
    MultiInputUnit<T>
    Multiply<T>
    Negate
    NesterUnit<TGraph, TMacro>
    Normalize<T>
    NotApproximatelyEqual
    Null
    NullCheck
    NullCoalesce
    NumericComparison
    Once
    Or
    PerSecond<T>
    Project<T>
    RemoveDictionaryItem
    RemoveListItem
    RemoveListItemAt
    Round<TInput, TOutput>
    SaveVariables
    ScalarExponentiate
    ScalarRoot
    SelectOnEnum
    SelectOnFlow
    SelectUnit
    SelectUnit<T>
    Sequence
    SetDictionaryItem
    SetGraph<TGraph, TMacro, TMachine>
    SetListItem
    Subtract<T>
    SwitchOnEnum
    SwitchUnit<T>
    This
    Throw
    Timer
    ToggleFlow
    ToggleValue
    TriggerCustomEvent
    TriggerStateTransition
    TryCatch
    UnifiedVariableUnit
    VariableUnit
    WaitForFlow
    WaitUnit
    Implements
    IUnit
    IGraphElementWithDebugData
    IGraphElement
    IGraphItem
    INotifiedCollectionItem
    IDisposable
    IPrewarmable
    IAotStubbable
    IIdentifiable
    IAnalyticsIdentifiable
    Inherited Members
    GraphElement<FlowGraph>.BeforeAdd()
    GraphElement<FlowGraph>.AfterRemove()
    GraphElement<FlowGraph>.Dispose()
    GraphElement<FlowGraph>.InstantiateNest()
    GraphElement<FlowGraph>.UninstantiateNest()
    GraphElement<FlowGraph>.HandleDependencies()
    GraphElement<FlowGraph>.GetAotStubs(HashSet<object>)
    GraphElement<FlowGraph>.Prewarm()
    GraphElement<FlowGraph>.CopyFrom(GraphElement<FlowGraph>)
    GraphElement<FlowGraph>.ToString()
    GraphElement<FlowGraph>.guid
    GraphElement<FlowGraph>.dependencyOrder
    GraphElement<FlowGraph>.graph
    GraphElement<FlowGraph>.deserializationDependencies
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: Unity.VisualScripting
    Assembly: Unity.VisualScripting.Flow.dll
    Syntax
    [SerializationVersion("A", new Type[] { })]
    public abstract class Unit : GraphElement<FlowGraph>, IUnit, IGraphElementWithDebugData, IGraphElement, IGraphItem, INotifiedCollectionItem, IDisposable, IPrewarmable, IAotStubbable, IIdentifiable, IAnalyticsIdentifiable

    Constructors

    Unit()

    Declaration
    protected Unit()

    Properties

    canDefine

    Gets a value indicating whether this unit can be defined.

    Declaration
    [DoNotSerialize]
    public virtual bool canDefine { get; }
    Property Value
    Type Description
    bool

    connections

    Gets all connections associated with this unit.

    Declaration
    [DoNotSerialize]
    public IEnumerable<IUnitConnection> connections { get; }
    Property Value
    Type Description
    IEnumerable<IUnitConnection>

    controlInputs

    Gets the collection of control input ports for this unit.

    Declaration
    [DoNotSerialize]
    public IUnitPortCollection<ControlInput> controlInputs { get; }
    Property Value
    Type Description
    IUnitPortCollection<ControlInput>

    controlOutputs

    Gets the collection of control output ports for this unit.

    Declaration
    [DoNotSerialize]
    public IUnitPortCollection<ControlOutput> controlOutputs { get; }
    Property Value
    Type Description
    IUnitPortCollection<ControlOutput>

    defaultValues

    Gets a dictionary of default values used by the unit. The keys represent port names, and the values represent their corresponding defaults.

    Declaration
    [Serialize]
    public Dictionary<string, object> defaultValues { get; }
    Property Value
    Type Description
    Dictionary<string, object>

    definitionException

    Gets the exception that occurred during the definition process, if the unit failed to define.

    Declaration
    [DoNotSerialize]
    public Exception definitionException { get; protected set; }
    Property Value
    Type Description
    Exception

    failedToDefine

    Gets a value indicating whether this unit failed to define.

    Declaration
    [DoNotSerialize]
    public bool failedToDefine { get; }
    Property Value
    Type Description
    bool

    inputs

    Gets all input ports (both valid and invalid) for this unit.

    Declaration
    [DoNotSerialize]
    public IEnumerable<IUnitInputPort> inputs { get; }
    Property Value
    Type Description
    IEnumerable<IUnitInputPort>

    invalidInputs

    Gets the collection of invalid input ports for this unit, which represent connections with unresolved compatibility issues.

    Declaration
    [DoNotSerialize]
    public IUnitPortCollection<InvalidInput> invalidInputs { get; }
    Property Value
    Type Description
    IUnitPortCollection<InvalidInput>

    invalidOutputs

    Gets the collection of invalid output ports for this unit, which represent connections with unresolved compatibility issues.

    Declaration
    [DoNotSerialize]
    public IUnitPortCollection<InvalidOutput> invalidOutputs { get; }
    Property Value
    Type Description
    IUnitPortCollection<InvalidOutput>

    invalidPorts

    Gets the invalid ports for this unit.

    Declaration
    [DoNotSerialize]
    public IEnumerable<IUnitPort> invalidPorts { get; }
    Property Value
    Type Description
    IEnumerable<IUnitPort>

    isControlRoot

    Gets a value indicating whether this unit is the control root of its graph.

    Declaration
    [DoNotSerialize]
    public virtual bool isControlRoot { get; protected set; }
    Property Value
    Type Description
    bool

    isDefined

    Gets a value indicating whether this unit is currently defined.

    Declaration
    [DoNotSerialize]
    public bool isDefined { get; }
    Property Value
    Type Description
    bool

    outputs

    Gets all output ports (both valid and invalid) for this unit.

    Declaration
    [DoNotSerialize]
    public IEnumerable<IUnitOutputPort> outputs { get; }
    Property Value
    Type Description
    IEnumerable<IUnitOutputPort>

    ports

    Gets all ports (valid and invalid) for this unit.

    Declaration
    [DoNotSerialize]
    public IEnumerable<IUnitPort> ports { get; }
    Property Value
    Type Description
    IEnumerable<IUnitPort>

    position

    Gets or sets the position of this unit in the graph editor interface.

    Declaration
    [Serialize]
    public Vector2 position { get; set; }
    Property Value
    Type Description
    Vector2

    relations

    Gets the collection of port-to-port relationships (or connections) in this unit.

    Declaration
    [DoNotSerialize]
    public IConnectionCollection<IUnitRelation, IUnitPort, IUnitPort> relations { get; }
    Property Value
    Type Description
    IConnectionCollection<IUnitRelation, IUnitPort, IUnitPort>

    validInputs

    Gets the valid input ports for this unit.

    Declaration
    [DoNotSerialize]
    public IEnumerable<IUnitInputPort> validInputs { get; }
    Property Value
    Type Description
    IEnumerable<IUnitInputPort>

    validOutputs

    Gets the valid output ports for this unit.

    Declaration
    [DoNotSerialize]
    public IEnumerable<IUnitOutputPort> validOutputs { get; }
    Property Value
    Type Description
    IEnumerable<IUnitOutputPort>

    validPorts

    Gets the valid ports for this unit.

    Declaration
    [DoNotSerialize]
    public IEnumerable<IUnitPort> validPorts { get; }
    Property Value
    Type Description
    IEnumerable<IUnitPort>

    valueInputs

    Gets the collection of value input ports for this unit.

    Declaration
    [DoNotSerialize]
    public IUnitPortCollection<ValueInput> valueInputs { get; }
    Property Value
    Type Description
    IUnitPortCollection<ValueInput>

    valueOutputs

    Gets the collection of value output ports for this unit.

    Declaration
    [DoNotSerialize]
    public IUnitPortCollection<ValueOutput> valueOutputs { get; }
    Property Value
    Type Description
    IUnitPortCollection<ValueOutput>

    Methods

    AfterAdd()

    Declaration
    public override void AfterAdd()
    Overrides
    Unity.VisualScripting.GraphElement<Unity.VisualScripting.FlowGraph>.AfterAdd()

    AfterDefine()

    Declaration
    protected virtual void AfterDefine()

    Assignment(ControlInput, ValueOutput)

    Triggering the source may assign the destination value on the flow.

    Declaration
    protected void Assignment(ControlInput source, ValueOutput destination)
    Parameters
    Type Name Description
    ControlInput source
    ValueOutput destination

    BeforeRemove()

    Declaration
    public override void BeforeRemove()
    Overrides
    Unity.VisualScripting.GraphElement<Unity.VisualScripting.FlowGraph>.BeforeRemove()

    BeforeUndefine()

    Declaration
    protected virtual void BeforeUndefine()

    ControlInput(string, Func<Flow, ControlOutput>)

    Declaration
    protected ControlInput ControlInput(string key, Func<Flow, ControlOutput> action)
    Parameters
    Type Name Description
    string key
    Func<Flow, ControlOutput> action
    Returns
    Type Description
    ControlInput

    ControlInputCoroutine(string, Func<Flow, IEnumerator>)

    Declaration
    protected ControlInput ControlInputCoroutine(string key, Func<Flow, IEnumerator> coroutineAction)
    Parameters
    Type Name Description
    string key
    Func<Flow, IEnumerator> coroutineAction
    Returns
    Type Description
    ControlInput

    ControlInputCoroutine(string, Func<Flow, ControlOutput>, Func<Flow, IEnumerator>)

    Declaration
    protected ControlInput ControlInputCoroutine(string key, Func<Flow, ControlOutput> action, Func<Flow, IEnumerator> coroutineAction)
    Parameters
    Type Name Description
    string key
    Func<Flow, ControlOutput> action
    Func<Flow, IEnumerator> coroutineAction
    Returns
    Type Description
    ControlInput

    ControlOutput(string)

    Declaration
    protected ControlOutput ControlOutput(string key)
    Parameters
    Type Name Description
    string key
    Returns
    Type Description
    ControlOutput

    CopyFrom(Unit)

    Declaration
    protected void CopyFrom(Unit source)
    Parameters
    Type Name Description
    Unit source

    CreateDebugData()

    Declaration
    public virtual IGraphElementDebugData CreateDebugData()
    Returns
    Type Description
    IGraphElementDebugData

    Define()

    Defines this unit by setting up its ports, connections, and other requirements.

    Declaration
    public void Define()

    Definition()

    Declaration
    protected abstract void Definition()

    Disconnect()

    Declaration
    public void Disconnect()

    EnsureDefined()

    Ensures that this unit is properly defined, invoking definition if necessary.

    Declaration
    public void EnsureDefined()

    EnsureUniqueInput(string)

    Declaration
    protected void EnsureUniqueInput(string key)
    Parameters
    Type Name Description
    string key

    EnsureUniqueOutput(string)

    Declaration
    protected void EnsureUniqueOutput(string key)
    Parameters
    Type Name Description
    string key

    GetAnalyticsIdentifier()

    Declaration
    public override AnalyticsIdentifier GetAnalyticsIdentifier()
    Returns
    Type Description
    AnalyticsIdentifier
    Overrides
    Unity.VisualScripting.GraphElement<Unity.VisualScripting.FlowGraph>.GetAnalyticsIdentifier()

    Instantiate(GraphReference)

    Declaration
    public override void Instantiate(GraphReference instance)
    Parameters
    Type Name Description
    GraphReference instance
    Overrides
    Unity.VisualScripting.GraphElement<Unity.VisualScripting.FlowGraph>.Instantiate(Unity.VisualScripting.GraphReference)

    PortsChanged()

    Called to notify that ports in the unit have changed.

    Declaration
    public void PortsChanged()

    RemoveUnconnectedInvalidPorts()

    Removes any unconnected invalid ports from this unit.

    Declaration
    public void RemoveUnconnectedInvalidPorts()

    Requirement(ValueInput, ControlInput)

    Triggering the destination may fetch the source value.

    Declaration
    protected void Requirement(ValueInput source, ControlInput destination)
    Parameters
    Type Name Description
    ValueInput source
    ControlInput destination

    Requirement(ValueInput, ValueOutput)

    Getting the value of the destination may fetch the value of the source.

    Declaration
    protected void Requirement(ValueInput source, ValueOutput destination)
    Parameters
    Type Name Description
    ValueInput source
    ValueOutput destination

    Succession(ControlInput, ControlOutput)

    Triggering the source may trigger the destination.

    Declaration
    protected void Succession(ControlInput source, ControlOutput destination)
    Parameters
    Type Name Description
    ControlInput source
    ControlOutput destination

    Uninstantiate(GraphReference)

    Declaration
    public override void Uninstantiate(GraphReference instance)
    Parameters
    Type Name Description
    GraphReference instance
    Overrides
    Unity.VisualScripting.GraphElement<Unity.VisualScripting.FlowGraph>.Uninstantiate(Unity.VisualScripting.GraphReference)

    ValueInput(Type, string)

    Declaration
    protected ValueInput ValueInput(Type type, string key)
    Parameters
    Type Name Description
    Type type
    string key
    Returns
    Type Description
    ValueInput

    ValueInput<T>(string)

    Declaration
    protected ValueInput ValueInput<T>(string key)
    Parameters
    Type Name Description
    string key
    Returns
    Type Description
    ValueInput
    Type Parameters
    Name Description
    T

    ValueInput<T>(string, T)

    Declaration
    protected ValueInput ValueInput<T>(string key, T @default)
    Parameters
    Type Name Description
    string key
    T default
    Returns
    Type Description
    ValueInput
    Type Parameters
    Name Description
    T

    ValueOutput(Type, string)

    Declaration
    protected ValueOutput ValueOutput(Type type, string key)
    Parameters
    Type Name Description
    Type type
    string key
    Returns
    Type Description
    ValueOutput

    ValueOutput(Type, string, Func<Flow, object>)

    Declaration
    protected ValueOutput ValueOutput(Type type, string key, Func<Flow, object> getValue)
    Parameters
    Type Name Description
    Type type
    string key
    Func<Flow, object> getValue
    Returns
    Type Description
    ValueOutput

    ValueOutput<T>(string)

    Declaration
    protected ValueOutput ValueOutput<T>(string key)
    Parameters
    Type Name Description
    string key
    Returns
    Type Description
    ValueOutput
    Type Parameters
    Name Description
    T

    ValueOutput<T>(string, Func<Flow, T>)

    Declaration
    protected ValueOutput ValueOutput<T>(string key, Func<Flow, T> getValue)
    Parameters
    Type Name Description
    string key
    Func<Flow, T> getValue
    Returns
    Type Description
    ValueOutput
    Type Parameters
    Name Description
    T

    Events

    onPortsChanged

    Event triggered when ports in the unit have changed.

    Declaration
    public event Action onPortsChanged
    Event Type
    Type Description
    Action

    Implements

    IUnit
    IGraphElementWithDebugData
    IGraphElement
    IGraphItem
    INotifiedCollectionItem
    IDisposable
    IPrewarmable
    IAotStubbable
    IIdentifiable
    IAnalyticsIdentifiable

    Extension Methods

    Cloning.Clone(object, ICloner, bool)
    Cloning.Clone(object, ICloner, bool)
    Cloning.CloneViaFakeSerialization(object)
    Cloning.CloneViaFakeSerialization(object)
    ConversionUtility.ConvertTo(object, Type)
    ConversionUtility.ConvertTo(object, Type)
    ConversionUtility.ConvertTo<T>(object)
    ConversionUtility.ConvertTo<T>(object)
    ConversionUtility.IsConvertibleTo(object, Type, bool)
    ConversionUtility.IsConvertibleTo(object, Type, bool)
    ConversionUtility.IsConvertibleTo<T>(object, bool)
    ConversionUtility.IsConvertibleTo<T>(object, bool)
    Serialization.Serialize(object, bool)
    Serialization.Serialize(object, bool)
    TypeUtility.ToShortString(object, int)
    TypeUtility.ToShortString(object, int)
    UnityObjectUtility.IsUnityNull(object)
    UnityObjectUtility.IsUnityNull(object)
    UnityObjectUtility.ToSafeString(object)
    UnityObjectUtility.ToSafeString(object)
    XAnalyserProvider.Analyser(object, GraphReference)
    XAnalyserProvider.Analyser(object, IGraphContext)
    XAnalyserProvider.Analyser<TAnalyser>(object, GraphReference)
    XAnalyserProvider.Analyser<TAnalyser>(object, IGraphContext)
    XAnalyserProvider.Analysis(object, GraphReference)
    XAnalyserProvider.Analysis(object, IGraphContext)
    XAnalyserProvider.Analysis<TAnalysis>(object, GraphReference)
    XAnalyserProvider.Analysis<TAnalysis>(object, IGraphContext)
    XDescriptorProvider.Describe(object)
    XDescriptorProvider.Description(object)
    XDescriptorProvider.Description<TDescription>(object)
    XDescriptorProvider.Descriptor(object)
    XDescriptorProvider.Descriptor<TDescriptor>(object)
    XDescriptorProvider.HasDescriptor(object)
    XUnit.CompatibleValueInput(IUnit, Type)
    XUnit.CompatibleValueOutput(IUnit, Type)
    Cloning.CloneViaFakeSerialization<T>(T)
    Cloning.CloneViaFakeSerialization<T>(T)
    Cloning.Clone<T>(T, ICloner, bool)
    Cloning.Clone<T>(T, ICloner, bool)
    LinqUtility.Yield<T>(T)
    LinqUtility.Yield<T>(T)
    Serialization.CloneViaSerializationInto<TSource, TDestination>(TSource, ref TDestination, bool)
    Serialization.CloneViaSerializationInto<TSource, TDestination>(TSource, ref TDestination, bool)
    Serialization.CloneViaSerialization<T>(T, bool)
    Serialization.CloneViaSerialization<T>(T, bool)

    Did you find this page useful? Please give it a rating:

    Thanks for rating this page!

    Report a problem on this page

    What kind of problem would you like to report?

    • This page needs code samples
    • Code samples do not work
    • Information is missing
    • Information is incorrect
    • Information is unclear or confusing
    • There is a spelling/grammar error on this page
    • Something else

    Thanks for letting us know! This page has been marked for review based on your feedback.

    If you have time, you can provide more information to help us fix the problem faster.

    Provide more information

    You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:

    You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:

    You've told us there is information missing from this page. Please tell us more about what's missing:

    You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:

    You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:

    You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:

    You've told us this page has a problem. Please tell us more about what's wrong:

    Thank you for helping to make the Unity documentation better!

    Your feedback has been submitted as a ticket for our documentation team to review.

    We are not able to reply to every ticket submitted.

    In This Article
    • Constructors
      • Unit()
    • Properties
      • canDefine
      • connections
      • controlInputs
      • controlOutputs
      • defaultValues
      • definitionException
      • failedToDefine
      • inputs
      • invalidInputs
      • invalidOutputs
      • invalidPorts
      • isControlRoot
      • isDefined
      • outputs
      • ports
      • position
      • relations
      • validInputs
      • validOutputs
      • validPorts
      • valueInputs
      • valueOutputs
    • Methods
      • AfterAdd()
      • AfterDefine()
      • Assignment(ControlInput, ValueOutput)
      • BeforeRemove()
      • BeforeUndefine()
      • ControlInput(string, Func<Flow, ControlOutput>)
      • ControlInputCoroutine(string, Func<Flow, IEnumerator>)
      • ControlInputCoroutine(string, Func<Flow, ControlOutput>, Func<Flow, IEnumerator>)
      • ControlOutput(string)
      • CopyFrom(Unit)
      • CreateDebugData()
      • Define()
      • Definition()
      • Disconnect()
      • EnsureDefined()
      • EnsureUniqueInput(string)
      • EnsureUniqueOutput(string)
      • GetAnalyticsIdentifier()
      • Instantiate(GraphReference)
      • PortsChanged()
      • RemoveUnconnectedInvalidPorts()
      • Requirement(ValueInput, ControlInput)
      • Requirement(ValueInput, ValueOutput)
      • Succession(ControlInput, ControlOutput)
      • Uninstantiate(GraphReference)
      • ValueInput(Type, string)
      • ValueInput<T>(string)
      • ValueInput<T>(string, T)
      • ValueOutput(Type, string)
      • ValueOutput(Type, string, Func<Flow, object>)
      • ValueOutput<T>(string)
      • ValueOutput<T>(string, Func<Flow, T>)
    • Events
      • onPortsChanged
    • Implements
    • Extension Methods
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)