国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

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的評論 (共 條)

分享到微博請遵守國家法律
保定市| 湾仔区| 阿图什市| 景德镇市| 睢宁县| 池州市| 葫芦岛市| 肇东市| 泰来县| 托克托县| 屯门区| 义乌市| 靖宇县| 福安市| 平果县| 瑞丽市| 阜新| 康平县| 阿图什市| 米林县| 罗源县| 南宁市| 洞头县| 兴城市| 新河县| 天全县| 延吉市| 屏边| 松溪县| 曲松县| 三原县| 万宁市| 长兴县| 灵璧县| 福鼎市| 马龙县| 洛南县| 韶关市| 河南省| 柳河县| 新田县|