Arcanum_Viator
@Arcanum_Viator
Индусский кодер

Как сделать отображение и закрытие меню при нажатии одной и той же клавиши?

При нажатии "Tab" должно выводиться меню. После повторного нажатия "Tab" - оно должно исчезнуть. Как сделать, чтобы команды Показать\Скрыть работали последовательно?
(Условия с переменными и bool, не помогали. )

Сейчас скрипт выглядит так: (Меню отображается пока зажата кнопка. С желаемым результатом это имеет мало общего.)
public GameObject tabMenu; 

	void FixedUpdate(){
		if (Input.GetKeyDown(KeyCode.Tab))
                {MenuOpen();}

		if (Input.GetKeyUp(KeyCode.Tab))
                {MenuExit();}

	public void MenuOpen()
    	{tabMenu.SetActive(true);}

    	public void MenuExit()
    	{tabMenu.SetActive(false);}
  • Вопрос задан
  • 174 просмотра
Решения вопроса 3
@Layton
Ну, проще всего сделать у меню свойство, отображающее его статус (открыто, закрыто).
Ссылаясь на это, уже либо закрывать его, либо открывать.
Ответ написан
Комментировать
@Ezekiel4
Охотник на пиратов и сборщик монолитов
public GameObject tabMenu; 
bool isOpened; // статус

void Update(){ // клавиши лучше слушать в адейте
	if (Input.GetKeyDown(KeyCode.Tab)) {
		isOpened = !isOpened; // меняем статус
		tabMenu.SetActive(isOpened); // меняем состояние
	}
}
Ответ написан
@crowcs
void Update(){
    if (Input.GetKeyDown(KeyCode.Tab) && !TabMenu)
                {MenuOpen();}

    if (Input.GetKeyUp(KeyCode.Tab) && TabMenu)
                {MenuExit();}
  
public void MenuOpen()
    	{tabMenu.SetActive(true);}

public void MenuExit()
    	{tabMenu.SetActive(false);}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы