一、什么是序列化
官方敘述:序列化是將對(duì)象的狀態(tài)信息轉(zhuǎn)換為可以存儲(chǔ)或傳輸?shù)男问降倪^(guò)程。
人話(huà)敘述:我們平時(shí)輸入的代碼,實(shí)際上是不能儲(chǔ)存或者傳輸?shù)模晕覀冃枰g一下,翻譯成能儲(chǔ)存或者翻譯的文字,這個(gè)翻譯的過(guò)程叫做序列化。
二、什么要序列化
問(wèn)題:為什么我們平時(shí)的代碼不能儲(chǔ)存?
眾所周知,我們儲(chǔ)存數(shù)據(jù)用的是硬盤(pán)。
問(wèn)題:硬盤(pán)是如何儲(chǔ)存數(shù)據(jù)的呢?
注釋?zhuān)寒?dāng)其他東西都不變時(shí),電流正著流或者逆向流,可以產(chǎn)生不同的磁場(chǎng),不同的磁場(chǎng)就會(huì)吸引或排斥周?chē)臇|西,東西的位置就不同。反之,磁場(chǎng)不同,就可以產(chǎn)生不同的電流(正向或逆向)。
所以,電流會(huì)有兩個(gè)方向,磁場(chǎng)會(huì)有兩種狀態(tài)。這兩種狀態(tài),就是我們說(shuō)的,計(jì)算機(jī)只能讀懂0和1,因?yàn)樗挥袃煞N狀態(tài)。
磁場(chǎng)的狀態(tài),就一直留在硬盤(pán)里,需要資料的時(shí)候,就把這個(gè)狀態(tài)讀取一下,保存信息的時(shí)候,就用電流改變一下這個(gè)磁場(chǎng)狀態(tài)。
所以,我們想要儲(chǔ)存信息,必須把這個(gè)信息轉(zhuǎn)換成0或者1,那就必須要翻譯,也就是序列化。
三、什么是反序列化
序列化是把信息翻譯成機(jī)器能認(rèn)識(shí)的語(yǔ)言,那么反序列化就是把機(jī)器語(yǔ)言翻譯回來(lái)。
四、序列化有什么通用好處
官方1:永久性保存對(duì)象,保存對(duì)象的字節(jié)序列到本地文件或者數(shù)據(jù)庫(kù)中;
解釋?zhuān)杭热灰呀?jīng)翻譯成計(jì)算機(jī)能認(rèn)識(shí)的0和1了,就能儲(chǔ)存了,就能保存下來(lái)了。官方2:通過(guò)序列化以字節(jié)流的形式使對(duì)象在網(wǎng)絡(luò)中進(jìn)行傳遞和接收;
解釋?zhuān)汉芏嘤布ū热鐢?shù)據(jù)線(xiàn)),也是用0和1傳輸信息的,所以翻譯了以后,數(shù)據(jù)線(xiàn)也可以方便的傳輸這部分內(nèi)容了。
官方3:通過(guò)序列化在進(jìn)程間傳遞對(duì)象;
解釋?zhuān)翰煌能浖?,用的語(yǔ)言不一樣,你不好交換兩個(gè)軟件之間的信息,但是軟件都必須要和計(jì)算機(jī)交流,所以都必須會(huì)0和1這個(gè)語(yǔ)言,所以你翻譯以后,大家可以用0和1傳遞信息。
五、在Unity里序列化以后
在我們用Unity的時(shí)候,面板上會(huì)有一些信息,如下。
如果你希望你的信息在Unity的面板上顯示出來(lái),就可以用序列化。
反之,如果你希望面板上顯示出來(lái)的東西,我不想它顯示出來(lái),也可以用反序列化。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-501562.html
(并不是所有的都可以序列化和反序列化)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-501562.html
[SerializeField] int i;//序列化 //本來(lái)這個(gè)i是不會(huì)在面板上顯示的,但是因?yàn)樾蛄谢耍詴?huì)顯示 [NonSerialized] public int i;//反序列化 //本來(lái)這個(gè)i會(huì)在面板上顯示,但是因?yàn)橛昧朔葱蛄谢?,所以就不顯示了 [Serializable] public class Tool_return : MonoBehaviour{} //序列化 //對(duì)于類(lèi),或者結(jié)構(gòu)體之類(lèi)的,序列化需要用[Serializable]
到了這里,關(guān)于Unity | 序列化(Serialized)和反序列化(NonSerialized)是什么意思的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!