Создание меню паузы в Unity

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

1. Создайте свое меню паузы

  • Нарисуйте желаемый макет, включая кнопки («Возобновить», «Параметры», «Выход»).
  • Рассмотрите возможность использования прозрачных панелей для менее навязчивого ощущения.

2. Создайте холст

  • На панели «Иерархия» щелкните правой кнопкой мыши и выберите "UI -> Canvas".
  • Установите "Render Mode" на "Screen Space - Overlay" для правильного позиционирования.

3. Создайте панель меню

  • Под холстом щелкните правой кнопкой мыши и выберите "UI -> Panel".
  • Измените размер и расположите панель в соответствии с вашим дизайном.
  • Переименуйте его в "PauseMenu" для лучшей организации.

4. Добавить кнопки

  • Щелкните правой кнопкой мыши на панели PauseMenu и выберите "UI -> Button."
  • Повторите эти действия для каждой нужной кнопки («Возобновить», «Параметры», «Выход»).
  • Назовите их соответствующим образом (например, "ResumeButton").
  • Настройте их текст, размер и положение.

5. Сценарий логики

6. Пауза Функциональность

'PauseMenu.cs'

public class PauseMenu : MonoBehaviour
{
    public bool isPaused; // Flag to track pause state

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            // Toggle pause state on Escape key press
            isPaused = !isPaused;
            if (isPaused)
            {
                PauseGame();
            }
            else
            {
                ResumeGame();
            }
        }
    }

    void PauseGame()
    {
        // Set Time.timeScale to 0 to pause gameplay
        Time.timeScale = 0;
        // Make PauseMenu panel visible (activate its gameObject)
        PauseMenu.gameObject.SetActive(true);
    }

    void ResumeGame()
    {
        // Set Time.timeScale back to 1 to resume gameplay
        Time.timeScale = 1;
        // Hide PauseMenu panel (deactivate its gameObject)
        PauseMenu.gameObject.SetActive(false);
    }
}

7. Взаимодействие с кнопками

  • В окне инспектора выберите каждую кнопку.
  • Нажмите «+» рядом с "OnClick" и перетащите скрипт 'PauseMenu' в поле.
  • Выберите подходящую функцию (например, ResumeGame для ResumeButton).

8. Дополнительные штрихи

  • Настраивайте стили кнопок, добавляйте звуковые эффекты или реализуйте меню параметров.
  • Рассмотрите возможность использования prefabs для повторного использования в разных сценах.

Заключение

Надеемся, это руководство дало вам фору в создании работающего меню паузы в Unity. Не забудьте расширить эту базу, добавив больше функций и адаптировав ее к потребностям вашей конкретной игры.

Рекомендуемые статьи
Создание эффекта фильтра ленты VHS в Unity
Создание экрана загрузки в Unity
Учебное пособие по главному меню Unity
Создание простого шейдера травы в Unity
Создание пользовательского интерфейса экрана победителя в Unity
Создание авиасимуляторов в Unity
Возможности текстур-заполнителей для прототипирования в Unity