1. 程式人生 > >Unity中序列化和反序列化

Unity中序列化和反序列化

private ons 並且 行修改 ges 面向對象 我們 為我 -1

為了滿足面向對象中的封裝性,我們通常使用private關鍵字使變量私有化,讓外界無法訪問修改,起到保護作用。

但是一些特殊情況,我們希望在Unity中Inspector面板中修改到腳本組件中的私有成員。Unity為我們提供了序列化和反序列化。

序列化:利用關鍵字 [SerializeField] 讓私有成員在Inspector面板上顯示出來。

反序列化:利用關鍵字 [System.NonSerialized] 讓公有成員不在在Inspector面板上顯示出來。(只讓其他對象通過腳本來進行訪問)

使用示例:

在一個MyRay.cs組件裏添加:

    [System.NonSerialized]
    
public int score;//反序列化 [SerializeField] private int Length;//序列化

保存一下,在Unity的Inspector面板中加載一下,就會發現score變量不會顯示,而Length變量顯示出來,並且可以進行修改。

技術分享

Unity中序列化和反序列化