[Roll-a-ball]privateな変数を[SerializeField]でインスペクターに表示し、 インスペクター上で値を取得するとき~ | Unity Forum | Tech Stadium Forum

[Roll-a-ball]privat...
 
通知
すべてクリア

[Roll-a-ball]privateな変数を[SerializeField]でインスペクターに表示し、 インスペクター上で値を取得するとき~  

  RSS

Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
16/03/2021 10:25 pm  

[SerializeField] private GameObject target;
のようにprivateな変数を[SerializeField]でインスペクターに表示し、
インスペクター上で値を取得するとき
「Field ‘FollowPlayer.target’ is never assigned to, and will always have its default value null」
の警告が出るため、「= default」とデフォルト値をアサインして回避しておりますが、
警告が出るたびに全てのprivate変数にデフォルト値をつけていくしかないのでしょうか?
それとももっと効率的な方法があるのでしょうか?


引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
16/03/2021 10:26 pm  

警告を出さなくする回避方法はいくつかありますが、defaultを1個1個記述するのがベストかと思われます。
もし1つ1つ対処するのが面倒であれば、VisualStudioであればフォルダ内一括置換などができるので
一括置換などをするのも一つの手だと思います。
https://qiita.com/chocho/items/1633f56e57c4291f47cf


返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
16/03/2021 10:28 pm  

ご回答ありがとうございます!
ーーー
■\[SerializeField\]([^=]+?);
[^=] : =が含まれていない
+? : 1つ以上
上記二つの意味をあわせて「=が一つ以上含まれていないもの」
■[SerializeField]$1 = default;
$1 : ()内のものをそのまま使う
ーーー
と書くんですね(正規表現…なんと難しい…


返信引用
共有:
タイトルとURLをコピーしました