2016-12-31 27 views
2

讓我們假設我有一個場景,幾個網格狀的樹木,盒等讓叫它水平1.切換場景時網格是否重新加載?

後,我完成播放1級我切換到2級這樣。

SceneManager.LoadScene (1, LoadSceneMode.Single); //level2 scene index is 1 

的事情是級別2使用相同的網格級別1使用。他們得到卸載 - >重新加載?

我不是在談論DontDestroyOnLoad,因爲我不需要在2級場景中的GameObject的相同實例。

我在談論每個對象(網格)的模型數據,而不是它們的實例。我知道實例被刪除,但我認爲Unity會知道下一個場景使用相同的Meshes並保留它們。我只需要知道在切換場景時Meshes是否已卸載並重新加載。

回答

2

當您使用LoadScene更改場景時(如果您對其全部調用Destroy),那麼您不會調用DontDestroyOnLoad的對象將被銷燬,因此,請重新加載。然後它們被銷燬(如果它們出現在下一個場景中),它們將被重新實例化。

如果您編輯了在場景中實例化的特定對象,則這些編輯屬於此對象。

如果您多次加載相同的場景那麼此特定對象將進行編輯。但是,如果您加載具有此預製件的不同場景,則預製件將成爲未經編輯的新件。

如果您希望實例化的所有對象都像這個對象一樣,您必須編輯預製。要做到這一點,你只需點擊「應用」按鈕。

prefab buttons

這將使這成爲實例化的所有對象都具有的編輯。

如果你想要某個對象進行編輯,有些不需要它們,你可以製作一個單獨的預製件,只需將該對象的「名稱」從層次結構拖到項目文件夾中即可。你剛剛創建了一個新的預製件,你可以使用它。

還請記住,這不適用於在遊戲中完成的編輯。這些是您在場景視圖中做的編輯(作爲開發者而不是遊戲玩家)。遊戲關閉後編輯的遊戲視圖(例如玩家擠壓立方體)將丟失。

+0

你確定嗎?我正在談論每個對象的模型數據,而不是他們的實例。我知道實例被刪除,但我認爲Unity會知道下一個場景使用相同的模型數據並保留它。 – Lestat

+0

你在哪裏保存模型數據?究竟什麼是模型數據?他們不是變數嗎? –

+0

如果它是在預製件中編輯的東西,則每個實例化的預製件都將進行相同的編輯。所以下一個場景會有你的編輯。如果編輯是在整個級別進行「運行時」,那麼這些編輯將在新場景中丟失。給我更多的信息,以便我明白你在做什麼 –