Задать вопрос
nuclear_kote
@nuclear_kote

Как реализовать активную паузу?

Видел решение паузы с Time.timeScale = 0, но по идее под активную паузу не очень подходит, ибо камера и гуй должен остаться рабочим
  • Вопрос задан
  • 350 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик игр на Unity
    13 месяцев
    Далее
  • Skillbox
    Middle-разработчик игр на Unity
    3 месяца
    Далее
  • Stepik
    PRO C#. Профессия "Разработчик игр на Unity"
    6 месяцев
    Далее
Решения вопроса 1
@I_GRIN_I
Можно создать класс, наследуемы от MonoBehaviour, назовем его MonoBehaviourPaused, добавляешь в него protected bool IsPause, и чекаешь в нужных проверках это свойство. Таким образом ты можешь ставить на паузу отдельные компоненты в любой момент времени. Можно еще добавить PauseManager, в нем создать метод SetPause, а так же переменную IsPauseGlobal, а в MonoBehaviourPaused добавить static List ActiveList, а так же 2 метода OnEnable и OnDisable, в OnEnable можно чекать на IsPauseGlobal и выставлять IsPause, а так же добавлять this в статический лист, а в OnDisable убирать из этого листа. В методе SetPause в PauseManager проходишься по листу MonoBehaviourPaused.ActiveList и выставляешь всем IsPause, таким образом можешь всем выставить IsPause одной строкой, при этом выставится только активным компонентам.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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