Как сделать выход из игры в Unity

При разработке игр на Unity разработчик рано или поздно сталкивается с задачей реализации выхода из игры. Чаще всего выход осуществляется через кнопку пользовательского интерфейса, но иногда требуется завершить игру по нажатию определённой клавиши. В этой статье мы рассмотрим основные способы выхода из игры, которые подойдут для большинства проектов. В конце статьи ты также узнаешь, как завершать игру даже в редакторе Unity.

Закрытие игры по нажатию клавиши

Для закрытия приложения, созданного на Unity, используется следующий метод:

Application.Quit();

Этот метод завершает работу программы на любых платформах — как на ПК, так и на мобильных устройствах.

Пример кода для закрытия игры при нажатии клавиши Escape:

private void Update()
{
    if (Input.GetKeyDown(KeyCode.Escape))
    {
        Application.Quit();
    }
}

Закрытие игры по нажатию UI-кнопки

Создай кнопку в иерархии (Hierarchy): нажми +UIButton - TextMeshPro. Внутри объекта Canvas появится новая кнопка.

создание объекта в иерархии Unity MindSkill
Создание кнопки Unity MindSkill

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

Нужное событие

Теперь нужно написать метод выхода из игры и сделать его публичным:

public void QuitGame()
{
    Application.Quit();
}
С# cкрипт на выход из игры Unity MindSkill

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

Компонент скрипта Unity MindSkill

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

Плюсик на событии Unity MindSkill
перемещение компонента в Unity MindSkill

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

выбор метода Unity MindSkill

Готово! Теперь можно протестировать кнопку.

Остановка игры в редакторе Unity

Во время тестирования игры в редакторе Application.Quit() не работает, поэтому для остановки игры внутри Unity нужно воспользоваться следующим кодом:

public void QuitGame()
{
    #if UNITY_EDITOR
    UnityEditor.EditorApplication.isPlaying = false;
    #endif
    Application.Quit();
}

Здесь используется директива #if UNITY_EDITOR, которая позволяет выполнить код только в редакторе Unity.


Теперь ты знаешь, как реализовать выход из игры в Unity разными способами. Используй подход, который лучше всего подходит для твоего проекта!

TelegramОставить заявку