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));
}
}
}