最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

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

分享到微博請遵守國家法律
开平市| 揭西县| 肥乡县| 瑞昌市| 桐柏县| 玉林市| 简阳市| 台中市| 安溪县| 宁都县| 彭水| 延庆县| 佛冈县| 阜新市| 攀枝花市| 宁国市| 黄石市| 象州县| 泽库县| 葫芦岛市| 中西区| 玛曲县| 河东区| 长葛市| 金山区| 鸡西市| 东明县| 颍上县| 临洮县| 安阳县| 独山县| 济宁市| 合水县| 江城| 即墨市| 班玛县| 镇远县| 酒泉市| 吴桥县| 通榆县| 隆尧县|