PONOS Advent Calendar 2020の10日目の記事です。
昨日は@kerimekaさんの【Android】root判定によるチート対策でした。
Unity 2019以前
C# 7.3から自動実装プロパティのバッキングフィールドに属性をつけられるようになりましたが、SerializeField
属性をつけるとInspectorの表示が残念なことになってました。
public class Sample : MonoBehaviour
{
[field: SerializeField]
public int ValueA { get; private set; }
}
ラベルだけ上書きするPropertyDrawer
を自作したら使い勝手が良くなりそうな気がしますが、実際はうまくいきません。
そのあたりは下記の記事で説明されています。
Unityで自動実装プロパティに表示名を指定する
Unity 2020
2020からは
public class Sample
{
[field: SerializeField]
public int ValueA { get; private set; }
}
ちなみに表示名はプロパティ名ですがyamlに保存されるのはバッキングフィールドの名前です。
結論
Unity 2020から自動実装プロパティのバッキングフィールドにSerializeField
属性をつけるとプロパティ名がいい感じに表示されるようになりました🎉
本当はInspectorでいい感じに表示する拡張を公開する予定だったのですが、2020でチェックしていたところ何もしなくてもプロパティ名が表示されたのでやめました。
明日は@kenta-sanです!