Я пытаюсь перейти с одной сцены на другую и вызвать функцию, как только это произойдет.Поэтому, когда я нажимаю кнопку «Моя игра» на странице главного меню, она загружает функцию, чтобы начать строить мир.У меня есть функция для создания мира, но как только я прикрепил его к кнопке, он перестал работать.До сих пор я считаю, что это зависит от того, насколько я не до конца понимаю метод вызова функции из другого класса для ее нормального запуска.Я начинаю определять свой GameObject как:
private static GameOjbect Play;
Это не позволяет мне назначить GameObject ему в редакторе Unity.Поэтому я остановился на методе использования:
GameObject Play = GameObject.Find("PlayScreen");
Мой GameObeject активен в иерархии, когда эта функция запускается, но программа по-прежнему не работает правильно.Чтобы проверить, где программа сталкивается с проблемой, которую я использовал:
Debug.Log(Play);
Который, как я полагал, просто вывел бы «PlayScreen» в журнал отладки, поскольку это игровой объект, который я ищу, но это только возвращает «Нуль»"и моя программа не продвигается дальше, создавая стену.
Ниже приведен код моего главного меню:
public class MainMenu : MonoBehaviour
{
public GameObject PlayScene;
public GameObject SettingsScreen;
public void PlayGame()
{
SceneManager.LoadScene("InGame");
Debug.Log("Loading startup...");
WorldBuilder.Awake();
}
}
Ниже приведена моя функция WorldBuilding:
public class WorldBuilder:MonoBehaviour
{
public static GameObject Play;
public static void Awake()
{
Debug.Log("Finding Scene...");
GameObject Play = GameObject.Find("PlayScreen");
Debug.Log(Play);
}
}
Почему моя программа не находит GameObject?Я все еще новичок в C #, поэтому любая помощь приветствуется.Thankyou.