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

Как сделать перезагрузку сцены

Всем привет. В данной статье мы научимся осуществлять перезагрузку текущей сцены. И для начала используя окно Hierarchy, добавим кнопку с надписью "Рестарт", которая как раз и будет перезагружать нашу сцену. Размер кнопки, текст, и изображение для кнопки отредактируйте сами, на Ваш вкус.

Далее создадим скрипт C#, с названием Scenes, со следующим содержимым:

using UnityEngine;
using UnityEngine.SceneManagement;

public class Scenes : MonoBehaviour
{
    public void ReastartLevel()
    {
        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    }
}

Здесь мы создали метод ReastartLevel(), при вызове которого будет извлекаться индекс текущей сцены при помощью метода Scene.buildIndex. А потом, при помощи метода SceneManager.LoadScene, будет происходить загрузка той сцену, индекс которой мы только что получили.

После написания данного скрипта, сохраняем его, и проделываем следующие шаги.

  • Присваиваем данный скрипт нашему объекту(кнопки Рестарт). Для этого необходимо перетащить наш скрипт в окно Inspector для нашей кнопки.
  • Далее необходимо перетащить сам объект(кнопка Рестарт) в поле On Click (). После чего выбрать название нашего метода, который мы создавали в скрипте, а именно: Scenes - RestartLevel (). (См. рис)

На этом всё! Последний штрих, который остался сделать, это добавить нашу сцену(если не добавлено) в настройках юнити. Для этого в верхнем меню Unity жмём File - Build Settings.... И далее перетаскиваем нашу сцену в настройки сцен, как указано на скриншоте.

Поздравляем, перезагрузка сцены готова на все 100%. Если у Вас возникли какие-либо трудности, пишите в комментариях. А на этом всё. Всем спасибо.

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

Комментарии

2
Naushnik2024 8 месяцев назад

Здравствуйте сделал код как у вас, но в моем случае после нажатия на кнопку сцена загружается заново но персонаж стоит и все застывшее как-будто.

lox 8 месяцев назад

Name_1200, сделай time.timeScale = 1 после рестарта

Гости не могут оставлять комментарии. Войдите на Сайт или Зарегистрируйтесь