我認爲你要找的是「保存」哪些對象被刪除的方法:你只需要讓你的類繼承MonoBehaviour
並且調用DontDestroyOnLoad()
,這樣你的包含腳本的對象將存在於場景之間。
public static class DestroyedObject : MonoBehaviour
{
public static DestroyedObject Instance;
private static List<GameObject> objs = new List<GameObject>();
private void Awake()
{
if (!Instance)
{
Instance = this;
}
else
{
DestroyImmediate(gameObject);
}
DontDestroyOnLoad(gameObject);
}
public static void Add(GameObject obj)
{
if(!objs.Contains(obj))
objs.Add(obj);
}
public static List<GameObject> GetDestroyedObjects()
{
return objs;
}
}
然後你只需訪問使用DestroyedObject.Instance.Add()
或DestroyedObject.Instance.GetDestroyedObjects()
腳本(有些人不喜歡這種設計模式,但它已被證明使用Unity時是非常有效的)。
同樣作爲@Sergey問,爲什麼創建對象(在場景加載),以便之後刪除它們:您可以執行反轉操作(僅實例化所需的)。
希望這會有所幫助,
當場景開始時,你有一些被破壞的物體嗎?爲什麼在場景開始之前創建和銷燬某些東西? –
其隱藏的對象遊戲,找到的對象被破壞然後你移動到另一個場景,你可以回到前一個場景多數民衆贊成爲什麼有對象需要保持銷燬 –
甚至沒有注意到你嚴格複製粘貼代碼@ m-rogalski在[你以前的問題]中提供了你(http://stackoverflow.com/questions/41547533/how-to-pass-the-destroyed-state-of-an-object-in-unity):也許你可以簡單地問他,而不是開始一個新的問題...... – Kardux