/// <summary>
 /// Construct state.
 /// </summary>
 /// <param name="engine">State machine.</param>
 public VFXControllerBufferState(StateMachine engine, VisualEffectController <T> controller, float delay = 1.0f) : base(engine)
 {
     this.controller = controller;
     this.delay      = delay;
     this.timer      = delay;
     this.isRunning  = false;
 }
 /// <summary>
 /// Construct state.
 /// </summary>
 /// <param name="engine">State machine.</param>
 public VFXControllerIdleState(StateMachine engine, VisualEffectController <T> controller) : base(engine)
 {
     this.uiCamera   = this.uiCamera ?? GameObject.FindGameObjectWithTag("UICamera").GetComponent <Camera>();
     this.controller = controller;
 }
 /// <summary>
 /// Construct state.
 /// </summary>
 /// <param name="engine">State machine.</param>
 public VFXControllerHoldState(StateMachine engine, VisualEffectController <T> controller) : base(engine)
 {
     this.controller = controller;
 }