36 lines
969 B
C#
36 lines
969 B
C#
namespace Unity.VisualScripting
|
|
{
|
|
/// <summary>
|
|
/// Triggers the transition in the parent state graph.
|
|
/// </summary>
|
|
[UnitSurtitle("State")]
|
|
[UnitCategory("Nesting")]
|
|
[UnitShortTitle("Trigger Transition")]
|
|
[TypeIcon(typeof(IStateTransition))]
|
|
public sealed class TriggerStateTransition : Unit
|
|
{
|
|
/// <summary>
|
|
/// The moment at which the parent state transition should be triggered.
|
|
/// </summary>
|
|
[DoNotSerialize]
|
|
[PortLabelHidden]
|
|
public ControlInput trigger { get; private set; }
|
|
|
|
protected override void Definition()
|
|
{
|
|
trigger = ControlInput(nameof(trigger), Trigger);
|
|
}
|
|
|
|
private ControlOutput Trigger(Flow flow)
|
|
{
|
|
var stateTransition = flow.stack.GetParent<INesterStateTransition>();
|
|
|
|
flow.stack.ExitParentElement();
|
|
|
|
stateTransition.Branch(flow);
|
|
|
|
return null;
|
|
}
|
|
}
|
|
}
|