private UnityAction HaltAction() => () => { if (State == ERootState.Idle) { return; } State = ERootState.Idle; SendMessage?.Invoke(new HaltMessage()); };
private UnityAction LaunchAction() => () => { if (State != ERootState.Idle) { return; } State = ERootState.Working; SendMessage?.Invoke(new LaunchMessage()); };
private void Start() { State = ERootState.Idle; _uiManager = FindObjectOfType <UIManager>(); Assert.IsNotNull(_uiManager, LogExtension.BoldRed(Defaults.UIManagerNotFound)); Assert.IsNotNull(_uiManager.LaunchButton, LogExtension.BoldRed(Defaults.LaunchButtonIsNotSet)); Assert.IsNotNull(_uiManager.HaltButton, LogExtension.BoldRed(Defaults.HaltButtonIsNotSet)); _uiManager.LaunchButton.onClick.AddListener(LaunchAction()); _uiManager.PauseButton.onClick.AddListener(PauseAction()); _uiManager.HaltButton.onClick.AddListener(HaltAction()); Debug.Log(LogExtension.Bold("[RootController][Start] Complete")); }