При разработке игр на Unity разработчик рано или поздно сталкивается с задачей реализации выхода из игры. Чаще всего выход осуществляется через кнопку пользовательского интерфейса, но иногда требуется завершить игру по нажатию определённой клавиши. В этой статье мы рассмотрим основные способы выхода из игры, которые подойдут для большинства проектов. В конце статьи ты также узнаешь, как завершать игру даже в редакторе Unity.
Закрытие игры по нажатию клавиши
Для закрытия приложения, созданного на Unity, используется следующий метод:
Application.Quit();
Этот метод завершает работу программы на любых платформах — как на ПК, так и на мобильных устройствах.
Пример кода для закрытия игры при нажатии клавиши Escape:
private void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
Application.Quit();
}
}
Закрытие игры по нажатию UI-кнопки
Создай кнопку в иерархии (Hierarchy): нажми + → UI → Button - TextMeshPro. Внутри объекта Canvas появится новая кнопка.


В инспекторе (Inspector) у кнопки есть компонент Button, в котором нас интересует событие On Click(). Оно срабатывает при нажатии на кнопку.

Теперь нужно написать метод выхода из игры и сделать его публичным:
public void QuitGame()
{
Application.Quit();
}

Прикрепи этот скрипт к любому объекту (например, к самой кнопке).

В компоненте Button нажми + в On Click(), затем перетащи объект со скриптом в появившееся поле.


Выбери нужный метод (QuitGame) в выпадающем списке.

Готово! Теперь можно протестировать кнопку.
Остановка игры в редакторе Unity
Во время тестирования игры в редакторе Application.Quit() не работает, поэтому для остановки игры внутри Unity нужно воспользоваться следующим кодом:
public void QuitGame()
{
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#endif
Application.Quit();
}
Здесь используется директива #if UNITY_EDITOR, которая позволяет выполнить код только в редакторе Unity.
Теперь ты знаешь, как реализовать выход из игры в Unity разными способами. Используй подход, который лучше всего подходит для твоего проекта!