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 2D Уроки C# Создание ИгрСкачать

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как сделать игру на Unity Ballance #6 [GameDev] Рестарт сцены, переход на следующую сцену
Поделиться или сохранить к себе:
Технологичная помощь
Добавить комментарий

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

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

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

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

    Ответить