private void Update() { if (commandMenuState == CommandMenuState.SelectingCommand) { if (!activeUnit || activeUnit.state != UnitStates.CanAction) { MenuManager.Instance.SetMenuActive(false); SetActiveUnit(); } else { if (Input.GetKeyDown(KeyCode.Space)) { if (activeUnit.commands[selectedAction].action.RequiresTarget()) { StartCoroutine(SelectCommandTarget(activeUnit.commands[selectedAction].action.GetTargetPool())); } else { activeUnit.ExecuteAction(activeUnit.commands[selectedAction]); } } else if (Input.GetKeyDown(KeyCode.S) && selectedAction < activeUnit.commands.Length - 1) { selectedAction++; MenuManager.Instance.selectedAction = selectedAction; MenuManager.Instance.CalculateCursorPosition(); } else if (Input.GetKeyDown(KeyCode.W) && selectedAction > 0) { selectedAction--; MenuManager.Instance.selectedAction = selectedAction; MenuManager.Instance.CalculateCursorPosition(); } } } }