A game about forced loneliness, made by TACStudios
1namespace Unity.VisualScripting 2{ 3 /// <summary> 4 /// Called before the machine is destroyed. 5 /// </summary> 6 [UnitCategory("Events/Lifecycle")] 7 [UnitOrder(7)] 8 public sealed class OnDestroy : MachineEventUnit<EmptyEventArgs> 9 { 10 protected override string hookName => EventHooks.OnDestroy; 11 12 public override void StopListening(GraphStack stack) 13 { 14 // StopListening is typically triggered when the object is disabled or destroyed 15 // OnDestroy is a special case event where we want it to continue listening even when the object 16 // is disabled. It only unregisters itself on destruction and not before. 17 // That's why this method is overriden to do nothing. 18 } 19 20 private protected override void InternalTrigger(GraphReference reference, EmptyEventArgs args) 21 { 22 base.InternalTrigger(reference, args); 23 24 // Stop listening for events after we're triggered (i.e when we're destroyed) 25 using var stack = reference.ToStackPooled(); 26 base.StopListening(stack); 27 } 28 } 29}