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