FormerlySerializedAs
FormerlySerializedAs
是 Unity 中的一個屬性(attribute
),用於處理欄位的重新命名。當重新命名一個序列化的欄位時,Unity 通常會失去對舊名的參考,導致序列化出現問題。
使用 FormerlySerializedAs
可以告诉 Unity 欄位之前的名稱,從而正確地反序列化。
以下為修改範例:
在 BaseEntity 類別中有一個 HP
欄位以及一個 ItemData
欄位,並且已經在 Inspector
上更改過它們的值
1 | public class BaseEntity : MonoBehaviour |
此時,想要更改欄位的名稱,如果直接重新命名這些欄位的話,在 Inspector
會丟失這些值,
使用 FormerlySerializedAs
告訴 Unity 欄位之前叫什麼。當編譯後,Unity 會幫我們將值對應到對應到新的欄位上。
1 | public class BaseEntity : MonoBehaviour |
確認更新之後沒問題,可將 FormerlySerializedAs
刪除,但記得要在大家都更新完之後再做刪除的動作。
Reference: