Пробую создать лобби для игры, решил воспользоваться плагином Photon. Делал всё по видеоуроку, но почему-то у меня не работает экран загрузки(3 раза перепроверил код и всё остальное в точности как у меня).
В общем, есть у меня 5 менюшек и все они скрыты. Через скрипт они открываются и закрываются когда нужно, но проблема в том, что я хочу чтобы при заходе в игру появлялась надпись "Загрузка...". На видео при запуске игры в юнити пишет "Загрузка", а у меня чёрный экран и ошибка:
NullReferenceException: Object reference not set to an instance of an object
Launcher.Start () (at Assets/Scripts/Launcher.cs:19).
То есть я пытаюсь дёрнуть из массива название своей менюшки, а именно "loading", но при загрузке игры она не открывается, но если в одной моей меню нажать кнопку, которая перекидывает в другое меню, то экран загрузки появляется. То есть что я хочу: При запуске игры должна быть надпись "Загрузка..." и когда присоединились уже к лобби, то открывается само меню. Меню появляется, но загрузка нет, она с ошибкой.
При нажатии "Создать комнату" у меня идёт как раз "Загрузка" и открывается меню создание комнаты. Почему тогда при старте не открывается загрузочное меню? Я не понимаю что ошибка мне эта из консоли говорит.
Вот код скрипта Launcher:
private void Start()
{
Debug.Log("Присоединяемся к мастер серверу");
PhotonNetwork.ConnectUsingSettings();
MenuManager.instance.OpenMenu("loading");
}
public override void OnConnectedToMaster()
{
Debug.Log("Вы присоеденились к мастеру");
PhotonNetwork.JoinLobby();
}
public override void OnJoinedLobby()
{
Debug.Log("Вы присоеденились к лобби");
MenuManager.instance.OpenMenu("mainMenu");
}
public void CreateRoom()
{
if (string.IsNullOrEmpty(_roomInputField.text)) return;
PhotonNetwork.CreateRoom(_roomInputField.text);
MenuManager.instance.OpenMenu("loading");
}
Скрипт Menu (открытия менюшек):
public string menuName;
public void Open()
{
gameObject.SetActive(true);
}
public void Close()
{
gameObject.SetActive(false);
}
Скрипт MenuManager (там где все объекты):
public static MenuManager instance;
[SerializeField] private List<Menu> _menus;
public void OpenMenu(string menuName)
{
foreach (Menu menu in _menus)
{
if (menu.menuName == menuName)
{
menu.Open();
}
else
{
menu.Close();
}
}
}
void Start()
{
instance = this;
}
Сам юнити:

Launcher? Что такоеMenuManager.instance? Где методOpenMenu? – aepot Oct 19 '22 at 17:59instance = this;перенесите вAwake()– aepot Oct 19 '22 at 18:20