我有一個GameManager
腳本,用於管理加載場景,在場景中放置角色,從遊戲對象中讀取地圖信息等等。 GameManager
腳本設置爲DontDestroyOnLoad
。獲取新場景的兒童
我試圖找出如何在加載新場景後從GameManager
訪問我的新場景中的對象。我正在使用SceneManager.sceneLoaded
事件來運行我的「場景初始化」代碼。這裏的事件處理程序:
void OnLevelFinishedLoading(Scene scene, LoadSceneMode mode)
{
// I want to access GameObjects within the newly loaded scene here
//
// SceneManager.GetActiveScene().GetRootGameObjects() returns
// System.ArgumentException: the scene is not loaded
// I want to do something like this
foreach (MapFeature mapFeature in rootObject.GetComponentsInChildren<MapFeature>())
{
// Do something
}
}
我想要得到的新場景的根級別GameObject
,然後是根對象上使用GetComponentInChildren
,以動態地搶在現場各個部件並將它們存儲在GameManager
。但SceneManager.GetActiveScene().GetRootGameObjects()
返回System.ArgumentException: the scene is not loaded
如何從我的GameManager
中新加載的場景中獲取對象?如果有一種比獲取新場景的根對象更好的方法並使用它來獲取它的子項,我就會全神貫注。
感謝。看起來也許事件是以錯誤的順序被解僱的,所以'sceneLoaded'在新場景的初始事件之前被觸發? –