目次
はじめに
スクリプトにて Unity 側でシリアライズ可能な値を定義したとします。
以下の例では SampleClass.cs に oldObject
を定義しています。
using UnityEngine;
public class SampleClass : MonoBehaviour
{
public GameObject oldObject;
}
Unity の Inspector ビュー上で oldObject
に値を設定します。

設定した後に変数名を oldObject
から newObject
に変更します。
Unity 側を確認すると、先程設定した値の参照が外れてしまいます。

本記事では、シリアライズで設定した値を保存したまま変数名を変える方法を紹介します。
FormerlySerializedAs 属性を使って値を保持したまま変数名を変更する
結論を言うと、FormerlySerializedAs
属性を使うことで、シリアライズの値を保持したまま変数名を変更できます。
変数名を変更し、変数の上にFormerlySerializedAs
属性を付与します。引数には変更前の変数名を記載します。
using UnityEngine;
using UnityEngine.Serialization;
public class SampleClass : MonoBehaviour
{
// 引数には変更前の変数名を記載する
[FormerlySerializedAs("oldObject")]
public GameObject newObject;
}
そうすることで Unity 上で設定した値が外れることなく変数名の変更が可能になります。
SerializeField
属性を用いた private な変数にも FormerlySerializedAs
が使用できます。
using UnityEngine;
using UnityEngine.Serialization;
public class SampleClass : MonoBehaviour
{
[FormerlySerializedAs("_oldObject")]
[SerializeField]
private GameObject _newObject;
}
変数名の変更後は FormerlySerializedAs
のコード部分は削除して問題ありません。
参考資料
参考 FormerlySerializedAsAttributeUnity DocumentationUnityの教科書 Unity 2021完全対応版 2D&3Dスマートフォンゲーム入門講座
いちばん売れているUnity入門書が最新バージョンに対応 最新環境でゲーム制作を楽しく体験しましょう!
■本書の特徴 ●初めてゲーム制作にチャレンジする人に最適!
最初は簡単な2Dゲームの制作からスタートし、徐々に難しいゲームへと進めていきます。サンプルゲームの制作を通じて、Unityの機能と、ゲームを作るための知識が自然と身に付きます。
Unityゲーム プログラミング・バイブル 2nd Generation
Unityのゲーム開発現場で最も使われた決定版書籍が、大幅バージョンアップして登場!
ゲームの開発現場で即実践できるスキルが身につく!
本書は、ゲーム開発で最も使われている「Unity」の入門や初級レベルを卒業した方向けの書籍です。ゲームの開発現場で、即実践できるスキルが身につくように、「37」の最新のトピックを網羅しました。
Unity ゲームエフェクト マスターガイド
本書は,Unity上でゲームエフェクトを制作していく過程を解説した書籍です。Shader Graphを使用してシェーダーを作成し,Shurikenでエフェクト制作する過程を解説していきます。またHoudiniなどのDCC(Digital Content Creation)ツールを使ったリソース制作の方法についても解説しています。
Shurikenだけに的を絞った本ではなく,エフェクトに必要なシェーダー制作,リソース制作などにも踏み込んで解説しており,内容とレベルで妥協はありません。ゲームエフェクトの制作現場における必携の1冊です。