Unity 5. Скрипт перехода между сценами

perhod Уроки
Скрипт перехода между сценами

Давайте рассмотрим скрипт перехода между сценами через взаимодействие с объектом.

Допустим на сцене есть предмет или персонаж, при взаимодействии с которым вам необходимо перейти на другую сцену.
Создадим два C# скрипта и назовем их Perehod и Bot. Первый вешаем на вашего персонажа, второй на тот объект с которым будете взаимодействовать.

Скрипт Perehod

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

public class Perehod : MonoBehaviour {
public Transform cam1;     // Камера персонажа из которой будет выходить луч
RaycastHit rch1;           // Собственно сам луч
public GameObject point;   // Точка на второй сцене в которой буде появляться персонаж
private bool visible;      // Переменная для отображения диалога
void Update () {
   Vector3 Direction = cam1.TransformDirection(Vector3.forward);
   if (Physics.Raycast(cam1.position, Direction, out rch1, 3)) {  // Луч будет выходить из камеры на расстоянии 3 метра
   if (rch1.collider.GetComponent<Bot> ()) { // Если луч попадает на коллайдер объекта на котором есть скрип Bot
       if (Input.GetKeyDown (KeyCode.E)) { // и если нажимаем клавишу Е
       visible = true; // то переменная visible принимает значение true
            }
          }
        }
      }
void OnGUI (){  //Создадим диалог
   if (visible) {  // если visible = true
   GUI.Box (new Rect ((Screen.width - 300) / 2, (Screen.height - 300) / 2, 300, 300), "Диалог" );  // создается окно с двумя кнопками
   GUI.Label (new Rect (new Rect ((Screen.width - 300) / 2, (Screen.height - 270) / 2, 300, 300)), "?");  //текст диалога
   if (GUI.Button (new Rect ((Screen.width - 250) / 2, (Screen.height - 250) / 2 + 250, 250, 25), "Отмена")) // если нажать отмена
   {
      visible = false;   // окно закроется
   }
   if (GUI.Button (new Rect ((Screen.width - 250) / 2, (Screen.height - 300) / 2 + 250, 250, 25), "Я хочу войти"))                  {  // если нажать "Я хочу войти"
      visible = false; // опять же окно закрывается
      SceneManager.LoadScene("2"); // и загружается сцена 2 (название сцены, у вас оно может быть другое)
      transform.position = point.transform.position; // переносим персонажа в ту точку где находится наш Point
       }
     }
  }

На второй сцене поместите пустышку Empty, сохраните ее в префаб. Затем этот префаб перетащите на персонажа в строчку point Скрипта Perehod. Ваш персонаж будет при загрузке сцены перемещен в те координаты которые имеет point т.е. ваша пустышка.

Скрипт Bot оставьте пустым.

using UnityEngine;
using System.Collections;

public class Bot : MonoBehaviour {

    void Start () {
    }

Видео:Как сделать кнопку перехода между сценами в UnityСкачать

Как сделать кнопку перехода между сценами в Unity
void Update () { } }

Добавьте ваши сцены в настройки проекта File — Build settings. Просто перенесите их туда. Первая сцена, которую планируете запускать, должна иметь индекс 0.
Так же, необходимо создать С# скрипт dontdestroy, он нужен для того что бы при переходе на новую сцену персонаж удалялся на старой и сохранил все свои параметры в новой сцене.

using UnityEngine;
using System.Collections;

  public class dontdestroy : MonoBehaviour
  {
   public static Transform playerTransform;
   void Awake ()
   {
     if (playerTransform = null)
     {
     Destroy(gameObject);
     return;
      }

   DontDestroyOnLoad(transform.gameObject);
   playerTransform = transform;
       }
    }

Повесьте его так же на вашего персонажа.

На видео показан пример использования этих скриптов.

Предыдущий урок

Следующий урок

📹 Видео

ПЛАВНАЯ смена сцены В Unity | Переход локаций легко и простоСкачать

ПЛАВНАЯ смена сцены В Unity | Переход локаций легко и просто

СМЕНА СЦЕН, ЛОКАЦИЙ В UNITY + ЭКРАН ЗАГРУЗКИ || Unity 2D Уроки C# Создание ИгрСкачать

СМЕНА СЦЕН, ЛОКАЦИЙ В UNITY + ЭКРАН ЗАГРУЗКИ || Unity 2D Уроки C# Создание Игр

Scene Management в Unity | ПЕРЕХОД между СЦЕНАМИСкачать

Scene Management в Unity | ПЕРЕХОД между СЦЕНАМИ

Как сделать переходы между сценами в UnityСкачать

Как сделать переходы между сценами в Unity

Переход между уровнями в Unity 5 с помощью триггераСкачать

Переход между уровнями в Unity 5 с помощью триггера

Unity Tutorial - Переход между СценамиСкачать

Unity Tutorial  - Переход между Сценами

Уроки по Unity #09 Unity3D Перемещение между сценами!Скачать

Уроки по Unity #09 Unity3D  Перемещение между сценами!

как сделать передача данных между сценами unityСкачать

как сделать передача данных между сценами unity

Unity 5. Переход между сценамиСкачать

Unity 5. Переход между сценами

КАК СДЕЛАТЬ ПЕРЕХОД МЕЖДУ СЦЕНАМИ В UNITY?Скачать

КАК СДЕЛАТЬ ПЕРЕХОД МЕЖДУ СЦЕНАМИ В UNITY?

Загрузочный экран и смена сцен в Unity 3DСкачать

Загрузочный экран и смена сцен в Unity 3D

Решаем проблему загрузки сцены в Unity. Теперь ты будешь делать правильноСкачать

Решаем проблему загрузки сцены в Unity. Теперь ты будешь делать правильно

как сделать переход между сценами в unity | переключение сцен unityСкачать

как сделать переход между сценами в unity | переключение сцен unity

Как сделать переход между сценами в unity 2dСкачать

Как сделать переход между сценами в unity 2d

Переход между сценами Unity МвИКИ НикитинСкачать

Переход между сценами Unity МвИКИ Никитин

Fade или затемнение экрана между сценами в UnityСкачать

Fade или затемнение экрана между сценами в Unity

Как сделать переход в другую сцену по триггеру | Unity 3DСкачать

Как сделать переход в другую сцену по триггеру | Unity 3D

Как сделать игру на Unity Ballance #6 [GameDev] Рестарт сцены, переход на следующую сценуСкачать

Как сделать игру на Unity Ballance #6 [GameDev] Рестарт сцены, переход на следующую сцену

Как сделать меню и переход на другую сцену в UnityСкачать

Как сделать меню и переход на другую сцену в Unity
Поделиться или сохранить к себе:
Технологичная помощь
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных, принимаю Политику конфиденциальности и условия Пользовательского соглашения.

  1. Я сделал всё как тут написано но у меня не работает,что делать?

    Ответить
  2. Expert автор

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

    Ответить