(C#和Unity)我有一款遊戲已經上市,我需要通過添加新內容來更新它。我有一個包含所有保存類的列表,使用binaryformatter對其進行序列化,並在加載時對其進行反序列化並恢復數據。我有一個關於數據序列化的複雜難題
我現在遇到的問題是我正在使用內存流的ToBase64String導出來允許玩家備份他們的數據。這造成了一個無法預料的複雜情況,我無法再讓他們使用這種方法重新加載他們的數據。
我無法將新類添加到預先存在的對象列表中,或者它破壞保存的數據。 我無法將新變量添加到預先存儲的類中或破壞保存的數據。 (我明白爲什麼它在做這個想法。) 我可以使用單獨的內存流和字符串來序列化兩個對象來表示它們。然而,使用導入FromBase64String的重新加載不能使用這種方法,除非我強制玩家將二進制代碼放到不同的框中,這會混淆它們,因此它不是一個選項。
我需要知道的是,如果我忽略了一些反序列化的方式,一個包含兩個對象的序列化Base64String在加載後會同時獲得這兩個對象。問題是我只能看到一種方法來抓住第一個被保存的對象,但不是兩個。
現在改變我如何保存和加載數據爲時已晚,所以我需要以某種方式處理我已有的數據。由於我僅限於Unity和Monobehavior的可愛性,C++不是一種選擇。
我希望你能明白我在問什麼我盡力解釋它。
謝謝你的時間。
我不明白。保存和備份兩個不同的東西?你序列化的兩個對象是什麼?你現在正在序列化什麼,你想要序列化什麼?改變任何事情永遠不會太遲,您可以通過在格式中添加版本號並在保存舊格式時將舊格式轉換爲新格式來以多種格式讀/寫數據。 – fejesjoco 2014-11-08 07:23:22
這兩個對象是列表
你說你有兩個名單,然後你說你需要添加另一個,但你只有一個。那不是第三個呢? – fejesjoco 2014-11-08 08:26:38