Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


FormerlySerializedAsAttribute

Use this attribute to rename a field without losing its serialized value.
Read time 3 minutesLast updated 6 days ago

Definition

[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

oldNameThe name of the field before the rename.

Inheritance

Inherited Members