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