public void Leave(List <AbstractPanelDeclarations> panelsActiveInNextState)
 {
     MultiPanelDeclarations.ForEach(item => item.PanelLeave(panelsActiveInNextState.Contains(item)));
     if (StateController != null)
     {
         StateController.ControllerLeave();
     }
     OnLeave();
 }
 public void DrawGUI()
 {
     MultiPanelDeclarations.ForEach(item => item.PanelOnGUI());
     if (StateController != null)
     {
         StateController.ControllerOnGUI();
     }
     OnGUI();
 }
 public void LateUpdate()
 {
     MultiPanelDeclarations.ForEach(item => item.PanelLateUpdate());
     if (StateController != null)
     {
         StateController.ControllerLateUpdate();
     }
     OnLateUpdate();
 }
 public void Update()
 {
     MultiPanelDeclarations.ForEach(item => item.PanelUpdate());
     if (StateController != null)
     {
         StateController.ControllerUpdate();
     }
     TimeInState += Time.deltaTime;
     OnUpdate();
 }
 public void Enter(object onEnterParams)
 {
     MultiPanelDeclarations.ForEach(item => item.PanelEnter(onEnterParams));
     if (StateController != null)
     {
         StateController.ControllerEnter(onEnterParams);
     }
     TimeInState = 0;
     OnEnter(onEnterParams);
 }