1. 程式人生 > >序列化 (Serialization)的幾段定義及在Unity中的使用

序列化 (Serialization)的幾段定義及在Unity中的使用

物件的狀態資訊轉換為可以儲存或傳輸的形式的過程。在序列化期間,物件將其當前狀態寫入到臨時或永續性儲存區。以後,可以通過從儲存區中讀取或反序列化物件的狀態,重新建立該物件。

======================================================================================================

當兩個程序在進行遠端通訊時,彼此可以傳送各種型別的資料。無論是何種型別的資料,都會以二進位制序列的形式在網路上傳送。傳送方需要把這個物件轉換為位元組序列,才能在網路上傳送;接收方則需要把位元組序列再恢復為物件。
把物件轉換為位元組序列的過程稱為物件的序列化。
把位元組序列恢復為物件的過程稱為物件的反序列化。

說的再直接點,序列化的目的就是為了跨程序傳遞格式化資料
======================================================================================================

Unity中HideInInspector和SerializeField一起使用


首先,Unity會自動為Public變數做序列化,序列化的意思是說再次讀取Unity時序列化的變數是有值的,不需要你再次去賦值,因為它已經被儲存下來。
然後是,什麼樣的值會被顯示在面板上?
已經被序列化,但是沒有用HideInInspector標記的值。

[HideInInspector]表示將原本顯示在面板上的序列化值隱藏起來。

[SerializeField]表示將原本不會被序列化的私有變數和保護變數可以序列化,這麼他們在下次讀取時,就是你上次賦值的值。

1如果a是公有的序列化變數。
1.1如果你想要在面板中看到a,那麼用:
public int a;

1.2如果你不想在面板中看到a,那麼用:
[HideInInspector]
public int a;
// 這樣a可以在程式中被程式碼賦值,但不會在面板中看到並手動設定賦值。

2 如果a是私有的序列化變數,你想在面板中讀取並儲存,那麼用:
[SerializeField]
private int a;

3.如果a是私有的序列化變數,你想在面板中讀取,但是不儲存,那麼用:
[HideInInspector][SerializedField]
private int a;
public int b{
    get{return a;}
}
然後在Editor中顯示,
EditorGUILayout.LabelField("value",game.B.ToString());

4如果a是私有序列化變數,你不想在面板中做任何操作(不想看到,也不想寫),但是想要在程式中給它賦值,那麼用。
[HideInInspector][SerializedField]
private int a;
public int b{
    get{return a;}
    set{a = value;}
}

相關推薦

序列 (Serialization)的定義Unity的使用

將物件的狀態資訊轉換為可以儲存或傳輸的形式的過程。在序列化期間,物件將其當前狀態寫入到臨時或永續性儲存區。以後,可以通過從儲存區中讀取或反序列化物件的狀態,重新建立該物件。 ================================================

.NETJSON的序列和反序列種方式

存儲 ati mas int font javascrip AS memory 種類 一、什麽是JSON JSON(JavaScript Object Notation, JS 對象簡譜) 是一種輕量級的數據交換格式。它基於 ECMAScript (歐洲計算機協會制

JSON 序列與反序列(-)泛型 java.lang.reflect.Type

限定 完成 ica 所有 void 數據類型 HR ble DC Type及其子接口的來歷 泛型出現之前的類型 沒有泛型的時候,只有原始類型。此時,所有的原始類型都通過字節碼文件類Class類進行抽象。Class類的一個具體對象就代表一個指定的原始類型。 泛型出現之後的類型

django序列種方法

serial pre turn rom list request publish 一個 指定 class LoginView(View): def get(self,request): 出錯 publish_list = Publisher

在C#,Json的序列和反序列種方式總結(轉載)

在這篇文章中,我們將會學到如何使用C#,來序列化物件成為Json格式的資料,以及如何反序列化Json資料到物件。 什麼是JSON? JSON (JavaScript Object Notation) is a lightweight data-interchange format.

Netty 整合 MessagePack 序列框架 + LengthFieldBasedFrameDecoder 自定義解碼器

環境準備及說明  如果是匯入二進位制開發包,則如下所示: 需要開發包的可以參考《 MessagePack 開發入門詳解》。 如果是 Maven 專案,則新增如下依賴: <!-- https://mvnrepository.com/artifact/

Java序列(Serialization)的理解

  如果你只知道實現 Serializable 介面的物件,可以序列化為本地檔案。那你最好再閱讀該篇文章,文章對序列化進行了更深一步的討論,用實際的例子程式碼講述了序列化的高階認識,包括父類序列化的問題、靜態變數問題、transient 關鍵字的影響、序列化 ID 問題。在筆者實際開發過程中,就多次

物件序列種方式的比較

定義一個待傳輸的物件UserVo: Java程式碼   public class UserVo{       private String name;       private int age;       private long phone;       private List<Us

在C#,Json的序列和反序列種方式總結

在這篇文章中,我們將會學到如何使用C#,來序列化物件成為Json格式的資料,以及如何反序列化Json資料到物件。 首先,解釋一下json  Json【javascript物件表示方法】,它是一個輕量級的資料交換格式,我們可以很簡單的來讀取和寫它,並且它很容易被計算機轉化和生成,它是完全獨立於語言的。 Jso

序列的一些注意事項建議

本文來自《改善java的151個建議》 建議11:養成良好習慣,顯示宣告UID 我們先寫一個序列化與反序列化的工具類SerilizationUtils public class SerializationUtils { private static Strin

為什麼要序列Serialization

一:概念 MSDN的定義:序列化是將物件狀態轉換為可保持或可傳輸的形式的過程。序列化的補集是反序列化,後者將流轉換為物件。這兩個過程一起保證資料易於儲存和傳輸 二: 什麼時候使用序列化: 1)物件序列化可以實現分散式物件。主要應用例如:RMI要利用物件序列化執行遠端主機上的服務,

Json的序列和反序列種方式

  【什麼是Json】           序列化:將物件轉換成位元組流的過程,這樣就可以輕鬆將物件儲存在磁碟檔案或資料庫中。           反序列化:序列化的逆過程,就是

淺談序列-Serialization

什麼是java序列化? java序列化主要目的是將物件寫入流中,便於通過網路傳輸該物件,當然還可以重建該物件。java序列化的API提供了可以重新生成完全相同的物件的功能,對於網路上java序列化被用來儲存狀態與資料庫同義,這是個不明確的。 如何

關於序列後反序列丟失大問題總結

序列化 (Serialization)將物件的狀態資訊轉換為可以儲存或傳輸的形式的過程。在序列化期間,物件將其當前狀態寫入到臨時或永續性儲存區。以後,可以通過從儲存區中讀取或反序列化物件的狀態,重新建

Json反序列之ObjectMapper(自定義實現反序列方法)

     對於伺服器端開發人員而言,呼叫第三方介面獲取資料,將其“代理”轉化並返給客戶端幾乎是家常便飯的事兒。    一般情況下,第三方介面返回的資料型別是json格式,而伺服器開發人員則需將json格式的資料轉換成物件,繼而對其進行處理並封裝,以返回給客戶端。  

java 序列(serialization)演算法的透露

宣告[quote]原文出處:http://www.javaworld.com/community/node/2915Submitted by javatips on Thu, 05/07/2009 - 15:28[/quote]序列化是將物件狀態儲存到位元組佇列的過程。反序列

序列的兩種實現優劣比較

      序列化我們通常會用在Activity之間進行物件傳遞的時候使用到,那麼序列化有兩種,Serializable和Parcelable ,我們該選擇哪一種呢?那就要先知道兩種區別。       1、作用       Serializable的作用是

序列序列種方式

定義一個待傳輸的物件UserVo: Java程式碼   publicclass UserVo{      private String name;      privateint age;      privatelong phone;      private List<UserVo> 

django rest framework 入門1-序列 Serialization

************************************ 推廣一下目前的公司: 小得——知識技能分享平臺,通過知識分享,獲取收益,打造個人品牌和知識網紅 www.exuetech.com ***********************************