【Unity】Inspectorウィンドウでの表示に関わるAttributeのまとめ
Attributeって結構な種類があるけれど、ここではInspectorでの表示に関わるAttributeをまとめ。
スクリプトリファレンスで[UnityEngine] -> [Attributes]と進めば何があるかまでは分かるけど、1個1個見ていって効果を確かめるのもめんど大変なので、自分用にまとめておくことに。
Attributeは2018年7月の時点で35種類あるけれど、そのうち8つのAttributeがInspectorでの表示に関わるものです。
環境
macOS 10.13 High Sierra
Unity2018.1.0f2
Inspectorウィンドウでの表示に関わるAttribute
表にまとめると以下の通り。何をもって「表示系」と言っているかは割と主観に塗れてるけど、デフォルトのInspectorウィンドウから見え方が変わるものをチョイスしてます。
Attribute名 | 効果 |
HeaderAttribute | 記述した位置にヘッダを追加する |
HideInInspector | 対象のフィールドをInspectorウィンドウに表示しない |
MultilineAttribute | 複数行のテキストエリアを表示する |
RangeAttribute | 値を範囲選択するためのスライダーが表示される |
SerializeField | privateなフィールドでもシリアライズの対象とし、Inspectorウィンドウに表示する |
SpaceAttribute | 記述した位置にスペースを表示する |
TextAreaAttribute | スクロールバー付きの複数行のテキストエリアを表示する |
TooltipAttribute | フィールドのヒントメッセージを表示する |
なんかこう、RPGの魔法の効果をまとめている気分になりました。
それぞれのAttributeについてはこのブログでも解説しているので、そちらもご覧あれ。
HeaderAttribute
記述した位置にヘッダーを追加するAttributeです。画像の例だと、「HPの設定項目」や「MPの設定項目」、「強さの設定項目」をHeaderAttributeで表示しています。
Inspectorウィンドウに表示する項目を整理したい時に便利です。
HideInInspector
このAttributeを付けたフィールドをInspectorウィンドウに表示しないようにします。
主にpublicなフィールドに付けるAttributeで、フィールド自体は外部のスクリプトから操作できるようにしたいけど、Inspectorウィンドウから値を変更して欲しくない、なんて時に使います。
MultilineAttribute
複数行のテキストエリアを表示するAttributeです。
string型のフィールド、またはジェネリックリストのタイプがstringであるフィールドに対して使えます。
RangeAttribute
入力値の範囲を設定し、スライダーによって値を入力できるようにするAttributeです。
int型、またはfloat型のフィールドで有効です。
入力値の範囲はあくまでもInspectorウィンドウでの入力に対してであり、スクリプト内でRangeの範囲外の値を設定するとそのまま入ってしまうので注意。
SerializeField
このAttributeを付けたフィールドをシリアライズの対象とし、Inspectorウィンドウで表示するようにします。
publicなフィールドはデフォルトでシリアライズの対象となるので、このAttributeを使うのは主にprivateなフィールドです。
他のスクリプトから値を変えて欲しくないけど、Inspectorウィンドウでは表示させて値の調整をしたい、なんて時に使います。
ぱっと見HideInInspectorと対をなす効果のようですが、あちらはInspectorウィンドウへの表示を制御するAttribute、こちらはシリアライズの制御を行うAttributeなので似て非なるもの。
シリアライズする => Unity側でフィールドの値を保持する => そのためについでにInspectorに表示する、という考え方なので、作用する場所が異なるのです。
SpaceAttribute
記述した位置にスペースを追加するAttributeです。
HeaderAttributeと組み合わせてInspectorウィンドウに表示するフィールドを整理するのに最適です。例えばデザイナーとバトルプランナーで触る部分を分けておけば、担当者が自分の作業範囲を認識しやすくなるかもしれません。
TextAreaAttribute
複数行のテキストエリアを表示するAttributeです。
MultilineAttributeと似ていますが、こちらはスクロールバーが表示され、横幅も広いテキストエリアとなっています。
下の画像だと、TextArea2のテキストエリアにスクロールバーが表示されています。
TooltipAttribute
フィールドの説明などのヒントメッセージを表示できるAttributeです。
UnityデフォルトのコンポーネントであるTransformやRigidbodyでも使われています。Inspectorウィンドウのスペースを使わずにヒントを表示できるので、該当のフィールドの使い方を記載しておくと非常に便利。
まとめのまとめ
このページではInspectorウィンドウへの表示に関わるAttributeの一覧をまとめました。
これでもUnityに存在するAttributeの約20%程度。Attributeの世界は広いなぁ……(遠い目)
ゲーム開発の攻略チャートを作りました!
-
前の記事
【Unity】HelpURLAttributeを使ってヘルプページに飛ばすサンプル 2018.07.17
-
次の記事
【Unity】Asset Storeを使って車輪の再発明を防ぐメリットはこれだ! 2018.07.20
コメントを書く