LoginSignup
5
3

More than 3 years have passed since last update.

[Unity] 中身を保持したまま変数名を置き換える

Last updated at Posted at 2020-05-22

基本的には自分用メモなので結論から言うと
スクリプトの先頭で

using UnityEngine.Serialization;

を宣言し、

[FormerlySerializedAs("previousName")]
var newtName;

で変数をpreviousName->newtNameに置き換えます。


Unityで変数名を置き換える場合、単変数ならGrepして置き換えて再度Inspectorから適当に値を設定、でいいのですが、例えば

[SerializeField] Tile[] m_treasureBaseTileArr = null;

のような配列で、既に何十ものオブジェクトが入れてあるような場合だとメンドクセ、、となることがあります。
2020-05-22_125020.png

(この例だとパーツがきれいにid順に並んでいるのでまとめてドラッグ&ドロップしてもOKなのですが・・・。)

例えば上記の例で、中身を保持したまま
m_treasureBaseTileArr をm_treasureTileArr
に変更したい場合は、スクリプトの先頭で

using UnityEngine.Serialization;

を宣言し、

[FormerlySerializedAs("m_treasureBaseTileArr")]
[SerializeField] Tile[] m_treasureTileArr = null;

のように
[FormerlySerializedAs("m_treasureBaseTileArr")]
を変数の直前についかしてから
m_treasureBaseTileArr をm_treasureTileArr
に全置換します (FormerlySerializedAs()の中も置換しちゃわないよう注意)

こうすることでシリアライズされた値を保持したまま変数を変更することができます。

2020-05-22_130129.png

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3