public InputManager() { _controls = new PlayerInput(); #region Game _controls.Game.Movement.started += ctx => ShipMove.Invoke(true); _controls.Game.Movement.canceled += ctx => ShipMove.Invoke(false); _controls.Game.Rotation.performed += ctx => ShipRotate.Invoke(ctx.ReadValue <float>()); _controls.Game.Rotation.canceled += ctx => ShipRotate.Invoke(0); _controls.Game.Fire.started += ctx => ShipFire.Invoke(true); _controls.Game.Fire.canceled += ctx => ShipFire.Invoke(false); _controls.Game.Pause.started += ctx => GamePause.Invoke(); _controls.Game.Restart.started += ctx => GameRestart.Invoke(); #endregion #region Pause _controls.Pause.Exit.started += ctx => PauseExit.Invoke(); _controls.Pause.Resume.started += ctx => PauseResume.Invoke(); #endregion #region Game Over _controls.GameOver.Restart.started += ctx => GameOverRestart.Invoke(); _controls.GameOver.Exit.started += ctx => GameOverExit.Invoke(); #endregion GameManager.Instance.OnGameStateChanged += SwitchInputType; }
public override void ShowGUI(List <ActionParameter> parameters) { pauseResume = (PauseResume)EditorGUILayout.EnumPopup("Method:", pauseResume); listSource = (ActionRunActionList.ListSource)EditorGUILayout.EnumPopup("Source:", listSource); if (listSource == ActionRunActionList.ListSource.InScene) { parameterID = Action.ChooseParameterGUI("ActionList:", parameters, parameterID, ParameterType.GameObject); if (parameterID >= 0) { constantID = 0; actionList = null; } else { actionList = (ActionList)EditorGUILayout.ObjectField("ActionList:", actionList, typeof(ActionList), true); constantID = FieldToID <ActionList> (actionList, constantID); actionList = IDToField <ActionList> (actionList, constantID, true); if (actionList != null && actionList.actions.Contains(this)) { EditorGUILayout.HelpBox("An ActionList cannot " + pauseResume.ToString() + " itself - it must be performed indirectly.", MessageType.Warning); } } } else if (listSource == ActionRunActionList.ListSource.AssetFile) { parameterID = Action.ChooseParameterGUI("ActionList asset:", parameters, parameterID, ParameterType.UnityObject); if (parameterID < 0) { actionListAsset = (ActionListAsset)EditorGUILayout.ObjectField("ActionList asset:", actionListAsset, typeof(ActionListAsset), false); if (actionListAsset != null && actionListAsset.actions.Contains(this)) { EditorGUILayout.HelpBox("An ActionList Asset cannot " + pauseResume.ToString() + " itself - it must be performed indirectly.", MessageType.Warning); } } } if (pauseResume == PauseResume.Pause) { willWait = EditorGUILayout.Toggle("Wait until finish?", willWait); if (willWait) { EditorGUILayout.HelpBox("The ActionList will complete any currently-running Actions before it pauses.", MessageType.Info); } } else if (pauseResume == PauseResume.Resume) { rerunPausedActions = EditorGUILayout.ToggleLeft("Re-run Action(s) at time of pause?", rerunPausedActions); } AfterRunningOption(); }