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(); }
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"); }