Unity 中XML序列化和反序列化
序列化名詞解釋:序列化是將對象狀態轉換為可保持或傳輸的格式的過程。
與序列化相對的是反序列化,它將流轉換為對象。這兩個過程結合起來,可以輕松地存儲和傳輸數據。這就是序列化的意義所在。
XML序列化的實質:
序列化是不一個對象持久化到磁盤的一個過程,應用程序的一部分,甚至另一個程序都可以反序列化對象,是它的狀態與序列化之前相同,,用到的名空間System.Xml.Serialization名稱空間,反序列化可以理解為把該過程到過來再來一遍,,
XML序列化過程的描述:
System.Xml.Serialization命名空間中最重要的類使XmlSerializer,,,要序列化對象,首先要有被序列化的對象(比如:人物信息),,首先有一個指定的流文件(FileInfo),而后創建傳入路徑下的文件, 并且 實例化一個流/寫入器對象(StreamWriter)作為接收,,,最后需要實例化一個XmlSerializer對象,指定要序列化的對象類型,,在XmlSeralization上調用Serializer()方法,,,記得要關閉流,,
給它傳遞流/寫入器對象和要序列化的對象被序列化的數據可以為基本數據類型的數據,字段,數組,以及XmlElement和XmlAttribute對象格式的內嵌XML,,,
XML反序列化的過程描述:
從XML文檔中反序列化對象,應執行上述逆向過程,創建一個流/讀取器對象和一個XmlSerializer對象,然后給DeSerializer()方法傳遞該流/讀取對象,這個方法返回序列化對象,盡管它需要強制轉換為正確的類型,,
實際代碼演示:序列化一個游戲物體(例如玩家,怪物,NPC等)對象的實例,可以將它的數據(例如:位置,名字,等級,血量,經驗)序列化到XML中,,,
將以下掛載到cube上,程序運行,移動cube,并點擊序列化和反序列化按鈕,,,
using System; using System.IO; using System.Xml.Serialization; using UnityEngine; ///
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
unity XML 彈性文件服務
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。