【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

「スマホ向けのアプリを作ってみたいけど、何から手を付けていいか分からない!」


そんなお悩みをお持ちの方向けに、todoがアプリをリリースした経験から手順や考慮すべき点をまとめたe-bookを作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。


アプリをリリースする観点から書いているので各アプリストア向けの作業が入っていますが、企画、設計、開発、テスト部分については他のプラットフォームでも使える知識が満載です。


無料で入手できるのでぜひお早めにゲットして、開発をブーストさせてください!