Работа со сценами
У меня есть 2 сцены:GameMainMenu
и Game
. Хочу перенести объект WorldName
(TextMeshPro) с одной сцены на другую, но когда я пытаюсь обращаться к сцене, на которую переношу объект, то получаю сообщение о том, что сцена не найдена. Для проверки я при помощи Debug.Log()
выводил на экран имя сцены, но каково моё было удивление, когда я получал ответ, в котором сказано, что У меня имя моей сцены Null
, но при использовании LoadScene()
всё прекрасно загружалось. Помогите разобраться, что не так.
P.S. Сперва я нахожусь на сцене GameMainMenu
.
Вот фрагмент кода:
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using TMPro;
public class JoinToWorld : MonoBehaviour
{
Button WorldButton;
TextMeshProUGUI WorldName; // На другую сцену я кидаю вот эту табличку TMP
Scene GameScene; // Сцена, к которой я обращаюсь
GameObject SinglePlayerMenu;
void Start()
{
WorldButton = GetComponent<Button>();
GameScene = SceneManager.GetSceneByName("Game"); // По имени обращаюсь к сцене Game
WorldName = WorldButton.GetComponentInChildren<TextMeshProUGUI>();
WorldName.text = $"{WorldButton.name}";
WorldButton.onClick.AddListener(PlayInSelectedWorld);
}
public void PlayInSelectedWorld() // Вызываю функцию по нажатию кнопки
{
Debug.Log(GameScene.name);
SceneManager.LoadScene("Game", LoadSceneMode.Single); // Сцена запускается спокойно
SceneManager.MoveGameObjectToScene(WorldName.gameObject, GameScene); // А вот объект на нее не перемещается по вышеупомянутой причине
}
Ответы (1 шт):
Додумался: нужно было просто написать DontDestroyOnLoad(object)
, тогда я могу взаимодействовать с этим объектом на любых сценах