Давайте рассмотрим скрипт перехода между сценами через взаимодействие с объектом.
Допустим на сцене есть предмет или персонаж, при взаимодействии с которым вам необходимо перейти на другую сцену.
Создадим два 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 () { }void Update () { } }Видео:Как сделать кнопку перехода между сценами в UnityСкачать
Добавьте ваши сцены в настройки проекта 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 2D Уроки C# Создание ИгрСкачать
Scene Management в Unity | ПЕРЕХОД между СЦЕНАМИСкачать
Как сделать переходы между сценами в UnityСкачать
Переход между уровнями в Unity 5 с помощью триггераСкачать
Unity Tutorial - Переход между СценамиСкачать
Уроки по Unity #09 Unity3D Перемещение между сценами!Скачать
как сделать передача данных между сценами unityСкачать
Unity 5. Переход между сценамиСкачать
КАК СДЕЛАТЬ ПЕРЕХОД МЕЖДУ СЦЕНАМИ В UNITY?Скачать
Загрузочный экран и смена сцен в Unity 3DСкачать
Решаем проблему загрузки сцены в Unity. Теперь ты будешь делать правильноСкачать
как сделать переход между сценами в unity | переключение сцен unityСкачать
Как сделать переход между сценами в unity 2dСкачать
Переход между сценами Unity МвИКИ НикитинСкачать
Fade или затемнение экрана между сценами в UnityСкачать
Как сделать переход в другую сцену по триггеру | Unity 3DСкачать
Как сделать игру на Unity Ballance #6 [GameDev] Рестарт сцены, переход на следующую сценуСкачать
Как сделать меню и переход на другую сцену в UnityСкачать
Я сделал всё как тут написано но у меня не работает,что делать?
Данный скрипт актуален для Unity 5. Вы, наверное, используете современную версию Unity, поэтому что-то может не работать. Советую посмотреть урок перехода между сценами для современной версии Unity *****