Переход между сценами в Unity по кнопке

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

Давайте начнем. Для начала создадим в ассетах 2 новые сцены и назовем их «Scene1» и «Scene2».

Чтобы создать новую сцену, щелкните правой кнопкой мыши по панели ассетов и выберите Create > Scene.

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

Обычно, когда сцена сменяется от одной к другой, все экземпляры игровых объектов, сценариев и т. д., принадлежащие этой сцене, уничтожаются, а загружаются экземпляры из новой. Другой метод заключается в использовании функции DontDestroyOnLoad (), которая будет поддерживать ссылку на объект при смене сцены, но об этом следует поговорить в другом уроке.

Создание объекта и префаба SceneChanger

Итак, вернемся в Unity, на вкладке иерархии в «Scene1» создадим пустой объект и назовем его «SceneChanger».

Теперь добавим скрипт к объекту «SceneChanger» и назовем его «SceneChanger». 

Откроем скрипт в Visual Studio и напишем следующий код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class SceneChanger : MonoBehaviour
{
	public void ChangeScene(string sceneName)
	{
		SceneManager.LoadScene (name);
	}
	public void Exit()
	{
		Application.Quit ();
	}
}

Далее необходимо создать префаб , для этого просто выберите объект в иерархии и перетащите его в папку «Assets» на вкладке «Project» . После этого вы увидите синий куб с тем же именем объекта.

Теперь сохраните сцену и дважды щелкните «Scene2» . В этой сцене необходимо скопировать префаб SceneChanger. Для этого просто перенесем его во вкладку иерархии.

Создание пользовательского интерфейса

В пользовательском интерфейсе у нас будет текстовый объект с указанием названия сцены и кнопка, которая будет изменять сцену.

Итак, щелкните правой кнопкой мыши на вкладке Hierarchy и выберите UI> Panel . 

Снова щелкните правой кнопкой мыши на вкладке Hierarchy и выберите UI> Text . 

Еще раз щелкните правой кнопкой мыши на вкладке Hierarchy и выберите UI> Button . 

Ваш конечный результат должен выглядеть примерно так

Изменим текст на «THIS IS SCENE 1» и текст в кнопке на «CHANGE SCENE». Результат выглядит следующим образом:

Далее необходимо выбрать объект Button в Иерархии. На вкладке инспектора нажмем значок «плюс» в компоненте «Button».

Появится следующее:

Перетащим объект SceneChanger из иерархии в ссылку на объект (выделено красным цветом)

Теперь нужно выбрать функцию (выделено красным). В раскрывающемся списке выберите SceneChanger> ChangeScene (string).

Теперь вы увидите пустое место под раскрывающимся списком функций. Введите в нем «Scene2». Здесь мы выбрали объект SceneChanger и получили доступ к функции ChangeScene (). «Scene2» является входом. Теперь при каждом нажатии кнопки вызывается функция ChangeScene (), и сцена меняется на «Scene2» .

Cделайте то же самое для «Scene2», но введите «Scene1» в качестве входа и измените текст в Scene2 соответствующим образом.

Сейчас нужно добавить сцены в Build Settings в File menu . Это необходимо, так как без этого Unity не распознает cцены, и между ними не произойдет никакого перехода.

Нажмите на кнопку воспроизведения. Нажатие на кнопку в сцене приведет к переходу к другой сцене.

Добавить комментарий
Оцените статью
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Загрузка...