private void OnStateExited(object sender, StateTransitionEventArgs e)
		{
			foreach (var descriptor in _delegates.Values)
			{
				descriptor.DelegateExit(((State)sender).Id, e.TransitionEvent.EventInstance.Event);
			}
		}
		private void OnStateExited(object sender, StateTransitionEventArgs args)
		{
			Action(new TransitionReceipt(args.TransitionEvent));
		}
		private void OnStateExited(object sender, StateTransitionEventArgs args)
		{
			SetActive(false);
		}
		protected virtual void OnParentExit(object sender, StateTransitionEventArgs args)
		{
			lastState = historyFetcher(this, args.TransitionEvent);
		}
		private void OnStateEntered(object sender, StateTransitionEventArgs args)
		{
			nextTime = DateTime.Now.AddMilliseconds(timeoutPeriod);
			SetActive(true);
		}