using UnityEngine; namespace Unity.VisualScripting { /// /// Sets the value of an object variable. /// [UnitSurtitle("Object")] public sealed class SetObjectVariable : SetVariableUnit, IObjectVariableUnit { public SetObjectVariable() : base() { } public SetObjectVariable(string name) : base(name) { } /// /// The source of the variable. /// [DoNotSerialize] [PortLabelHidden] [NullMeansSelf] public ValueInput source { get; private set; } protected override void Definition() { source = ValueInput(nameof(source), null).NullMeansSelf(); base.Definition(); Requirement(source, assign); } protected override VariableDeclarations GetDeclarations(Flow flow) { return Variables.Object(flow.GetValue(source)); } } }