Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Все Гайды Мой Кабинет

Создание паузы

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

Описание

На игровой сцене будет располагаться кнопка «Пауза». При её нажатии, игра останавливается, и создаётся затемнение экрана. А так же кнопка паузы сменяется на кнопку «Старт». После нажатия на кнопку «Старт», игра возобновляется, затемнение пропадает, а вместо кнопки старт появляется кнопка «Пауза».

Из перечисленного описания можно заметить, что нам необходимо создать 2 кнопки, и 1 фоновую область, которая будет затемнять игру. Поэтому, давайте приступим к этой реализации.

Для начала создаём объект типа UI – Canvas, где и будут располагаться все наши элементы интерфейса. Настраиваем его:

  1. В поле Render Mode выбираем Screen Space – Camera. Это нужно, чтобы наш канвас привязать к нашей игровой камере.
  2. В поле Render Camera перетаскиваем объект нашей камеры из окна Hierarchy.
  3. В поле UI Scale Mode выбираем Scale With Screen Size.
  4. В поле Reference Resolution указываем Х=1920 Y=1080. Если Вы создаёте игру для мобильных устройств, то установите Х=1080 Y=1920

Далее создаём 2 объекта типа UI – Button, которые необходимы для наших кнопок. Для более приятной визуализации, добавляем нашим кнопкам спрайты(изображения). Если у Вас нет собственных спрайтов для кнопок, Вы можете скачать их на нашем сайте.

Осталось сделать затемнение экрана(необязательно). Для этого создаём объект типа UI – Panel. Далее в окне <i>Inspector</i> для данного объекта указываем чёрный цвет в поле <i>Сolor</i>, это нужно для затемнения нашей игры.

В завершении нам необходимо объект нашей кнопки переместить в объект Panel. А сам объект Panel отключить через окно Inspector. Его мы будем включать через скрипт C#, когда будет нажата кнопка паузы.

На этом всё. Переходим к программной части.

Программная часть

Для начала объявим переменную для нашего объекта Panel. Это нужно для того, чтобы мы могли обращаться к этой панели, для того чтобы её включить или отключить.

public GameObject panel; 

При нажатии на кнопку «Пауза», у нас должно происходить 2 события:

  1. Объект Panel должен стать активным, чтобы появилось затемнение игры, вместе с кнопкой «Продолжить».
  2. Остановить время игры до нуля.

Реализуем эти события для кнопки «Пауза», создав следующую функцию:

public void pause()
{
    panel.SetActive(true);
    Time.timeScale = 0f;
}

Тоже самое создаём и для кнопки «Возобновить», только с противоположными значениями:

public void play()
{
    panel.SetActive(false);
    Time.timeScale = 1f;
}

Готово, весь код выглядит следующим образом:

using UnityEngine;

public class PlayGame : MonoBehaviour
{
    public GameObject panel;

    public void play()
    {
        panel.SetActive(false);
        Time.timeScale = 1f;
    }
    public void pause()
    {
        panel.SetActive(true);
        Time.timeScale = 0f;
    }
}

Данный скрипт загружаем к объекту Panel, и в окне Inspector в поле panel, перетаскиваем объект Panel.

Готово! Если вам понравился гайд, буду рад вашим лайкам.

Вы можете отблагодарить автора донатом. ₽ Спасибо

Комментарии

0
Будьте первым, кто оставит комментарий к этому посту
Гости не могут оставлять комментарии. Войдите на Сайт или Зарегистрируйтесь