using UnityEngine;
namespace Unity.VisualScripting
{
///
/// Gets the value of a variable.
///
public sealed class GetVariable : UnifiedVariableUnit
{
///
/// The value of the variable.
///
[DoNotSerialize]
[PortLabelHidden]
public ValueOutput value { get; private set; }
///
/// The value to return if the variable is not defined.
///
[DoNotSerialize]
public ValueInput fallback { get; private set; }
///
/// Whether a fallback value should be provided if the
/// variable is not defined.
///
[Serialize]
[Inspectable]
[InspectorLabel("Fallback")]
public bool specifyFallback { get; set; } = false;
protected override void Definition()
{
base.Definition();
value = ValueOutput(nameof(value), Get).PredictableIf(IsDefined);
Requirement(name, value);
if (kind == VariableKind.Object)
{
Requirement(@object, value);
}
if (specifyFallback)
{
fallback = ValueInput