【Unity】Inspectorウィンドウでの表示に関わるAttributeのまとめ

【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の世界は広いなぁ……(遠い目)

アセット作ってます!

CTA-IMAGE

Unityでの開発に役立つアセットを作っています。

3DダンジョンRPGを開発するスピードを200%加速するAssetや、ファンタジーRPGのダンジョンを彩るパーツを取り揃えています。

特に3DダンジョンRPGのゲームを1から作るのは結構時間がかかります。ダンジョン部分の作成はこうしたアセットを使って、開発をブーストさせてみませんか?