40 lines
1.0 KiB
C#
40 lines
1.0 KiB
C#
using UnityEngine;
|
|
|
|
namespace Unity.VisualScripting
|
|
{
|
|
[SpecialUnit]
|
|
public abstract class UnifiedVariableUnit : Unit, IUnifiedVariableUnit
|
|
{
|
|
/// <summary>
|
|
/// The kind of variable.
|
|
/// </summary>
|
|
[Serialize, Inspectable, UnitHeaderInspectable]
|
|
public VariableKind kind { get; set; }
|
|
|
|
/// <summary>
|
|
/// The name of the variable.
|
|
/// </summary>
|
|
[DoNotSerialize]
|
|
[PortLabelHidden]
|
|
public ValueInput name { get; private set; }
|
|
|
|
/// <summary>
|
|
/// The source of the variable.
|
|
/// </summary>
|
|
[DoNotSerialize]
|
|
[PortLabelHidden]
|
|
[NullMeansSelf]
|
|
public ValueInput @object { get; private set; }
|
|
|
|
protected override void Definition()
|
|
{
|
|
name = ValueInput(nameof(name), string.Empty);
|
|
|
|
if (kind == VariableKind.Object)
|
|
{
|
|
@object = ValueInput<GameObject>(nameof(@object), null).NullMeansSelf();
|
|
}
|
|
}
|
|
}
|
|
}
|