File size: 1,197 Bytes
18a519f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | using UnityEngine;
namespace Unity.VisualScripting
{
[UnitCategory("Graphs/Graph Nodes")]
public abstract class GetGraph<TGraph, TGraphAsset, TMachine> : Unit
where TGraph : class, IGraph, new()
where TGraphAsset : Macro<TGraph>
where TMachine : Machine<TGraph, TGraphAsset>
{
/// <summary>
/// The GameObject to retrieve the graph from.
/// </summary>
[DoNotSerialize]
[PortLabelHidden]
[NullMeansSelf]
public ValueInput gameObject { get; protected set; }
/// <summary>
/// The graph that is set on the GameObject.
/// </summary>
[DoNotSerialize]
[PortLabel("Graph")]
[PortLabelHidden]
public ValueOutput graphOutput { get; protected set; }
protected override void Definition()
{
gameObject = ValueInput<GameObject>(nameof(gameObject), null).NullMeansSelf();
graphOutput = ValueOutput(nameof(graphOutput), Get);
}
TGraphAsset Get(Flow flow)
{
var go = flow.GetValue<GameObject>(gameObject);
return go.GetComponent<TMachine>().nest.macro;
}
}
}
|