亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

unity serializer.Deserialize(stream)

unity serializer.Deserialize(stream)

C#
慕的地6264312 2022-10-15 14:33:32
誰能告訴我我做錯了什么?當我在編輯器中玩游戲時,一切正常。當我構建游戲并在那里嘗試保存游戲作品時,但在加載游戲數據時出現此錯誤:ArgumentNullException: Value cannot be null. 我一直在尋找解決方案,但似乎找不到任何解決方案。public void SaveGame(){    checkGameData();    XmlSerializer serializer = new XmlSerializer(typeof(PoliceSave));    FileStream stream = new FileStream(Application.persistentDataPath + "/gameData.xml", FileMode.Create);    serializer.Serialize(stream, policeSave);    stream.Close();    policeSave.GameData.Clear();    policeSave.Characters.Clear();    policeSave.Vehicles.Clear();    vehicleDetails.passenger.characters.Clear();    Debug.Log("[Server] Your game has been saved.");}public void LoadGame(){    clearGameObjects();    XmlSerializer serializer = new XmlSerializer(typeof(PoliceSave));    FileStream stream = new FileStream(Application.persistentDataPath + "/gameData.xml", FileMode.Open);    //try    //{        policeSave = serializer.Deserialize(stream) as PoliceSave;    //}catch    //{        Debug.Log("[Server] Error while loading game data!");    //}    stream.Close();    loadGameObjects();    policeSave.GameData.Clear();    policeSave.Characters.Clear();    policeSave.Vehicles.Clear();    vehicleDetails.passenger.characters.Clear();    Debug.Log("[Server] Your game has been loaded.");}[System.Serializable]public class GameData{    [XmlAttribute("Funds")]    public int funds;    [XmlAttribute("MissionID")]    public int missionId;}[System.Serializable]public class Passenger{    [XmlAttribute("Name")]    public List<string> characters;}[System.Serializable]public class Vec2Position{    [XmlAttribute("x")]    public float x;    [XmlAttribute("y")]    public float y;}[System.Serializable]public class Rotation{    [XmlAttribute("z")]    public float z;}[System.Serializable]public class CharacterDetails{    [XmlAttribute("Name")]    public string characterName;    [XmlAttribute("IsCameraSubject")]    public bool isCameraSubject;    public Vec2Position Position;    public Rotation Rotation;}
查看完整描述

1 回答

?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

在您的 XML 中,“乘客”是小寫的。你的班級名稱是大寫的。將您的 XML 屬性更改為<Passenger Name=""/>


您還應該將其作為數組/列表,如下所示:


<Passengers>

    <Passenger Name="Gary" Position="Driver" />

    <Passenger Name="Mary" Position="Front Passenger" />

    <Passenger Name="Jorgen" Position="Back Left Passenger" />

    <Passenger Name="Alien 1" Position="Gary's Stomach" />

</Passengers>

額外的

為角色和乘客提供一個 ID,以便他們可以在保存文件中的任何上下文中被引用?!懊Q”是模棱兩可的。那是唯一標識符嗎?是顯示它們時使用的字符串嗎?


<Characters>

    <Character Name="Chuck" ID="1" />

    ...

</Characters>


...


<Passengers>

    <Passenger ID="1" />

    ...

</Passengers>


查看完整回答
反對 回復 2022-10-15
  • 1 回答
  • 0 關注
  • 128 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號