FormerlySerializedAsAttribute
Use this attribute to rename a field without losing its serialized value.
Read time 3 minutesLast updated 6 days ago
Definition
- Type: Class
- Namespace: UnityEngine.Serialization
- Assembly: UnityEngine.CoreModule
- Inherits from: Attribute
[AttributeUsage(AttributeTargets.Field, AllowMultiple = true, Inherited = false)]public class FormerlySerializedAsAttribute : Attribute
Remarks
This is an Editor-only attribute and can't be used at runtime. For example, if you have a class like this:
using UnityEngine;public class MyMonster : MonoBehaviour{ public int hitpoints;}
And you would now like to rename this field. You can achieve that by using this attribute:
using UnityEngine;using UnityEngine.Serialization;public class MyMonster : MonoBehaviour{ [FormerlySerializedAs("hitpoints")] public int health;}
Unity serializes public variables by default. To serialize private variables, use the SerializeField attribute. For more information, see the Script Serialization documentation.
Properties
Property | Description |
|---|---|
| oldName | The name of the field before the rename. |