Krasava Marat
Знаток
(285)
1 месяц назад
такс ну поехали
вообще много способов:
1. Через using SceneManager (Рекомендуемый способ):
Этот метод считается наиболее эффективным и гибким.
⦁ Добавление сцены в Build Settings: Прежде чем загружать сцену, убедитесь, что она добавлена в "Build Settings". File -> Build Settings... Перетащите нужные сцены в список "Scenes In Build". У каждой сцены будет свой порядковый номер (индекс) в этом списке, начиная с нуля.
⦁ Код для загрузки сцены:
using UnityEngine.SceneManagement;
public class ChangeScene : MonoBehaviour
{
public void LoadScene(string sceneName)
{
SceneManager.LoadScene(sceneName);
}
public void LoadSceneByIndex(int sceneIndex)
{
SceneManager.LoadScene(sceneIndex);
}
}
⦁ Применение: Прикрепите этот скрипт к объекту на вашей сцене (например, к кнопке). В инспекторе появится поле для ввода названия сцены или её индекса. Можно использовать LoadScene("Game") (где "Game" — имя сцены) или LoadScene(1) (где 1 — индекс сцены в Build Settings). Для кнопки "Играть" в меню вызовите LoadScene("Game") в функции On Click().
2. Через Application.LoadLevel (Устаревший способ):
Этот метод всё ещё работает в старых версиях Unity, но его использование не рекомендуется.
public class ChangeScene : MonoBehaviour
{
public void LoadScene(string sceneName)
{
Application.LoadLevel(sceneName); // или Application.LoadLevel(индекс сцены);
}
}
Добавление функциональности кнопке:
⦁ Через Инспектор: Выберите кнопку в вашей сцене Меню. В инспекторе найдите компонент "Button". В разделе "On Click ()" нажмите "+". Перетащите объект, к которому прикреплен скрипт ChangeScene, в поле "None (Object)". В выпадающем списке выберите функцию LoadScene() или LoadSceneByIndex() и укажите имя или индекс сцены геймплея.
⦁ Через код (менее распространенный способ):
using UnityEngine;
using UnityEngine.UI; // Не забудьте импортировать UnityEngine.UI!
using UnityEngine.SceneManagement;
public class Menu : MonoBehaviour
{
public Button playButton;
void Start()
{
playButton.onClick.AddListener(() => SceneManager.LoadScene("Game")); // "Game" - имя сцены
}
}
Важные моменты:
⦁ Имена сцен: Будьте внимательны к регистру при указании имени сцены.
⦁ Индексы сцен: Индексы сцен в Build Settings начинаются с 0.
⦁ Аддитивная загрузка: Если вам нужно загрузить сцену поверх текущей (например, для UI), используйте SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive).
Надеюсь, это поможет! Если возникнут дополнительные вопросы, обращайтесь.