2017-01-09 13 views
-1

我的摧毀遊戲對象在我的遊戲中工作,但每當我改變場景,然後返回到我摧毀對象的場景,它再次存在。我如何讓它保持摧毀?我必須反序列化它嗎?我不需要它來創建一個保存文件。我只需要銷燬的對象不再出現。如何在團結中傳遞一個對象的破壞狀態

void OnMouseDown() 
{ 
    i.AddItem(0); 
    nameobj = gameObject.name; 
    Destroy(gameObject); 
} 
+0

這是我的對象上的代碼被破壞 –

+1

類似的問題問了多次。您需要了解如何以持久方式(序列化)在場景之間保存數據。 檢查這篇文章:http://naplandgames.com/blog/2016/11/27/saving-data-in-unity-3d-serialization-for-beginners/ – Hellium

+0

除了管理多個場景之間的數據,你應該檢查如何以疊加方式添加場景,並在返回時從堆疊中刪除它們。這種方式以前的場景將在內存中,這是一個開銷,但爲許多用例服務的目的https://docs.unity3d.com/ScriptReference/SceneManagement.LoadSceneMode.Additive.html – SourabhV

回答

0
public static class DestroyedObjects 
{ 
    static List<GameObject> objs = new List<GameObject>(); 
    public static void Add(GameObject obj) 
    { 
     if(!objs.Contains(obj)) 
      objs.Add(obj); 
    } 
} 

而且使用它像:

void OnMouseDown() 
{ 
    i.AddItem(0); 
    nameobj = gameObject.name; 
    DestroyedObjects.Add(gameObject); 
    // Destroy(gameObject); 
    gameObject.SetActive(false); 
} 
+0

我會試試這個。感謝你的回答! –

+0

它有一個錯誤先生。它說不能在靜態類 –

+0

@JrRosales中聲明實例成員。 –