だらだら〜自由自在〜

インディーゲーム制作チーム GAME GABURI でプログラム担当してます

SerializeFieldのCS0649を大体削除するための正規表現による置換

qiita.com
既存のUnityProjectを.Net4.xに変更したら未初期化変数でワーニング大量に出たので正規表現使ってdefault初期値に置換しました。という話。

//検索
\[SerializeField\]([\r\n]?)(\t+|\s+)(private|public|protected)?(\t|\s)?([0-9a-zA-Z|_|\[.*\]]+)(\t|\s)?([0-9a-zA-Z|_]+);
//置換
[SerializeField]$1$2$3$4$5$6$7 = default;

これで自分のProjectは大丈夫でした。以下備考

  • structのフィールドも置換しちゃうので、そっちはコンパイルエラーになってしまう。手動で戻してください。
  • 属性とフィールドをワンライナーで書いてるやつに対応できてるか謎。
  • アクセス修飾子には対応した
  • 配列にも対応した(2次元配列は対応できてないかも…)
  • まぁ備忘と参考にということで


何か書きにくいな、Qiitaとかにしたほうがええんやろか。