スポンサーリンク

【Unity】Inspectorで設定した値を保存しながら変数名を変える方法

Unity

Unity Version 2021.3.11f1(LTS)

変数名を変えると値が初期化される

using UnityEngine;

public class TestClass : MonoBehaviour
{
    public int testCount;

    [SerializeField] private string testStr;
}

Unityでは、変数の値をInspectorで設定することが出来ます。

ですが、スクリプト側で変数の名前を変えてしまうと、せっかく設定した変数の値が初期化されてしまいます。

そんな時、FormerlySerializedAsを使えば、値が初期化されることなく変数名を変えることが出来ます!

FormerlySerializedAsを使う

using UnityEngine;
using UnityEngine.Serialization;    //追加

public class TestClass : MonoBehaviour
{
    [FormerlySerializedAs("testCount")] //変更前の変数名を設定する
    public int count;

    [FormerlySerializedAs("testStr")]   //変更前の変数名を設定する
    [SerializeField] private string str;
}

変数名を変更した後に、変数の上にFormerlySerializedAsを記述します。

引数に変更前の変数名を入れることで、その値を引き継ぐことが出来ます!

エディターに戻って、値が変わっていなければ成功です!

お疲れさまでした!

タイトルとURLをコピーしました