我的摧毀遊戲對象在我的遊戲中工作,但每當我改變場景,然後返回到我摧毀對象的場景,它再次存在。我如何讓它保持摧毀?我必須反序列化它嗎?我不需要它來創建一個保存文件。我只需要銷燬的對象不再出現。如何在團結中傳遞一個對象的破壞狀態
void OnMouseDown()
{
i.AddItem(0);
nameobj = gameObject.name;
Destroy(gameObject);
}
我的摧毀遊戲對象在我的遊戲中工作,但每當我改變場景,然後返回到我摧毀對象的場景,它再次存在。我如何讓它保持摧毀?我必須反序列化它嗎?我不需要它來創建一個保存文件。我只需要銷燬的對象不再出現。如何在團結中傳遞一個對象的破壞狀態
void OnMouseDown()
{
i.AddItem(0);
nameobj = gameObject.name;
Destroy(gameObject);
}
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);
}
我會試試這個。感謝你的回答! –
它有一個錯誤先生。它說不能在靜態類 –
@JrRosales中聲明實例成員。 –
這是我的對象上的代碼被破壞 –
類似的問題問了多次。您需要了解如何以持久方式(序列化)在場景之間保存數據。 檢查這篇文章:http://naplandgames.com/blog/2016/11/27/saving-data-in-unity-3d-serialization-for-beginners/ – Hellium
除了管理多個場景之間的數據,你應該檢查如何以疊加方式添加場景,並在返回時從堆疊中刪除它們。這種方式以前的場景將在內存中,這是一個開銷,但爲許多用例服務的目的https://docs.unity3d.com/ScriptReference/SceneManagement.LoadSceneMode.Additive.html – SourabhV