五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

Unity序列化之Json

2020-11-15 00:14 作者:白白_可樂  | 我要投稿

講道理Unity自帶的JsonUtility庫在Unity5之后就已經實裝,而且性能也強,但是無奈網上的博客大多都是各種復讀機,以致于國內我看好多帖子用的都是第三方的Json庫。

要使用 JsonUtility 不用額外導入名字空間,這個類下面,我們能使用的一共就三個接口

JsonUtility接口

其中 FromJson 是反序列化,用于將Json文件讀取到我們所指定的變量中,如果是帶引用的類,官方推薦使用 FromJsonOverwrite?

函數(shù)原型:

FromJson函數(shù)原型
FromJsonOverwrite函數(shù)原型
ToJson函數(shù)原型

使用示例:

FromJson使用示例
FromJsonOverwrite使用示例
ToJson使用示例


ToJson 則是將變量序列化為 Json 字符串,便于我們保存至本地或者進行網絡傳輸。其重載的第二個參數(shù)為設定導出后的 Json 字符串格式,默認是 false,如果設置為 true,那么最終的內容包含換行符(也就是更好看的意思)


雖然 JsonUtility 可以序列化多種類型的變量,包括各類數(shù)字,集合,不過要說明的是,只有公開 public 的字段會被序列化,字典暫時是無法進行序列化的,屬性也是無法序列化的,[System.NonSerialized] 標簽修飾的字段以及私有字段也會不序列化

不知道是我記錯了還是啥原因,我記得以前List可以直接序列化,但是前兩天在寫到相關功能的時候發(fā)現(xiàn)序列化的結果是空值,到處翻資料,發(fā)現(xiàn)了一個新的標簽??[SerializeReference] 在加上這個標簽之后,可以正確序列化。

樣例代碼

對于我們自定義的類,只需要添加?[System.Serializable] 標簽就可以正常序列化,但是如果將其放置在 列表中,那么必須再使用一個類進行包裹,才可以正常序列化。

2020年11月30日更新:

和小伙伴討論了一下,因為List類型并不是object的子類,所以直接將List類型傳入ToJson會導致空值,所以就不能直接傳入List類型的值,最好的辦法就是像上圖一樣把列表放在一個類中,讓Unity把這個類序列化成Json字符串.

對于[SerializeReference]?這個標簽,只對引用類型有效,其實加不加,問題應該不大,如果有問題就加上吧...

Unity序列化之Json的評論 (共 條)

分享到微博請遵守國家法律
怀来县| 海安县| 宁津县| 资阳市| 股票| 定远县| 阿城市| 综艺| 阿克陶县| 武安市| 古丈县| 界首市| 香港| 新沂市| 体育| 昔阳县| 芦山县| 东丰县| 凤冈县| 右玉县| 乳山市| 大关县| 大丰市| 环江| 新泰市| 精河县| 威海市| 招远市| 聂拉木县| 穆棱市| 英德市| 平罗县| 巨鹿县| 信阳市| 林周县| 游戏| 瓦房店市| 宁阳县| 铁力市| 天津市| 海林市|