public async void ActionStart(MenuBase parentMenu, MenuBase targetMenu)
        {
            this.parentMenu = parentMenu;
            this.targetMenu = targetMenu;

            currentAction = this;
            ManageHistory();

            tokenSource = new CancellationTokenSource();
            if (targetMenu.awaiterType == AwaiterRunType.Await)
            {
                if (targetMenu.loadingScreen != null)
                {
                    await Task.Run(() => targetMenu.AwaitersBegin(tokenSource.Token));
                }
            }
            else
            {
#pragma warning disable CS4014 // Так как этот вызов не ожидается, выполнение существующего метода продолжается до тех пор, пока вызов не будет завершен
                if (targetMenu.loadingScreen != null)
                {
                    Task.Run(() => targetMenu.AwaitersBegin(tokenSource.Token));
                }
#pragma warning restore CS4014 // Так как этот вызов не ожидается, выполнение существующего метода продолжается до тех пор, пока вызов не будет завершен
            }
            ActionProceed();
        }
Пример #2
0
        public void SetMenuAction(MenuActionBase newAction)
        {
            if (newAction == null)
            {
                action = null;
                return;
            }

            if (newAction == action)
            {
                return;
            }

            action = (MenuActionBase)MenuActionBase.CreateInstance(newAction.GetType());
        }
 protected virtual void ActionFinish()
 {
     currentAction = null;
     Debug.LogError("Finish");
 }