(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

Hierarchyによく使用する機能を追加するQHierarchy【Unity】【アセット】


このエントリーをはてなブックマークに追加

この記事でのバージョン
Unity 2018.2.17f1


はじめに

今回はHierarchyによく使用する機能を追加するQHierarchyというアセットの紹介です!



イメージとしては以下のような感じ。

なお、色々と機能はありますが、全部表示するとごちゃごちゃし過ぎるので、

必要に応じて切り替えて使う感じになると思います。


f:id:kan_kikuchi:20181210094732j:plain



また、本記事に出てくるアセットは以下のものを使っています。






基本的な使い方

QHierarchyは導入するだけでとりあえず見た目が変わります。

f:id:kan_kikuchi:20181206203517j:plain


そして各種設定はTools/QHierarchy/Settingsから開けるウィンドウで行う感じです。


f:id:kan_kikuchi:20181206202708j:plain


なお、一部機能を使うとQHierarchyObjectListというオブジェクトが自動で作成されます。

(後述するADDITIONAL SETTINGSで非表示にも出来る)


f:id:kan_kikuchi:20181210080251j:plain


さて、次の項からは各機能とその設定値について説明していきます。


COMPONENTS SETTINGS (各機能のオンオフ、設定値の調整)

COMPONENTS SETTINGSではウィンドウの左側にあるチェックボックスで機能のオンオフをし、

その下のUIで各機能の設定値を調整できます。

なお、右上のボタンから設定値をデフォルトの状態にリセットする事も可能です。


f:id:kan_kikuchi:20181207142635j:plain


Hierarchy Tree (ツリーの表示)


Hierarchy Treeを有効にするとツリーが表示されるようになります。


f:id:kan_kikuchi:20181207143644j:plain

  • Tree Color : ツリーの色
  • Transparent background : 背景を透明にするか?(違いがよく分からず)
  • Enhanced : 拡張ツリー(ツリーの1番下が閉じるように)



MonoBehaviour Icon (MonoBehaviourがアタッチされているか)

MonoBehaviour Iconを有効にすると

MonoBehaviourのスクリプトがアタッチされているオブジェクトに色が付くようになります。


f:id:kan_kikuchi:20181207144331j:plain

  • Show component during play mode : エディタ実行中も機能を有効にする
  • Icon color : アイコンに付ける色
  • Ignore Unity MonoBehaviours : Unity(自作じゃない)のMonoBehavioursに色を付けない



Visibility (オブジェクトの有効無効切り替え)

Visibilityを有効にすると

オブジェクトの有効無効を切り替えるアイコンが表示され、クリックで切り替えられるようになります。

(Inspectorの左上のチェックボックスと同じ感じ)


f:id:kan_kikuchi:20181207150215j:plain

  • Show component during play mode : エディタ実行中も機能を有効にする


なお、Shfitを押しながらクリックすると子のオブジェクトを一緒に切り替え、

Altを押しながらだと兄弟のオブジェクトを一緒に切り替える事ができます。


さらにCmd(Ctrl)を押しながらクリックすると

エディタを実行していない時だけ消し、実行時には表示されるようにも出来ます。

この状態だとアイコンには斜め線が入り、色も変わります(デフォルトでは青)。


Lock (編集出来ないようにする)

Lockを有効にすると

編集出来るかどうかを切り替えるアイコンが表示され、クリックで切り替えられるようになります。


f:id:kan_kikuchi:20181211104419j:plain

  • Show component during play mode : エディタ実行中も機能を有効にする
  • Prevent selection of locked objects : ロックしたオブジェクトを選択出来ないようにする


なお、Shfitを押しながらクリックすると子のオブジェクトを一緒に切り替え、

Altを押しながらだと兄弟のオブジェクトを一緒に切り替える事ができます。


Static (Staticの切り替え)

Staticを有効にすると

Staticかどうかを切り替えるアイコンが表示され、クリックで切り替えられるようになります。

(Inspectorの右上のStaticと同じ感じ)


f:id:kan_kikuchi:20181210061112j:plain

  • Show component during play mode : エディタ実行中も機能を有効にする



Error (missingやnullなどの検知)

Errorを有効にすると何かしらの問題がある場合にアイコンが表示されるようになります。


f:id:kan_kikuchi:20181210061651j:plain

  • Show component during play mode : エディタ実行中も機能を有効にする
  • Show error icon up of hierarchy(very slow) : 子に問題がある場合に親に暗いアイコンを表示
  • Show error icon for disabled components : 無効になってるコンポーネントでもアイコンを表示
  • Show error icon for disabled GameObjects : 無効になってるオブジェクトでもアイコンを表示
  • Show error icon for the following : 表示する問題の種類
    • script is missing : スクリプトがmissing
    • reference is null : 参照がnull
    • reference is missing : 参照がmissing
    • string is empty : stringが空
    • callback of event is missing : コールバックやイベントがmissing
    • tag or layer is undefined. : タグやレイヤーが設定されてない
  • ignore package/classes : 検知しないPackage名やClasses名


なお、QHierarchyNullableを使えばnullになっていてもアイコンを表示しないようにも出来ます。

[QHierarchyNullable]
public GameObject Prefab;



Renderer (レンダラーの検知と有効無効切り替え)

Rendererを有効にするとレンダラーが付いてるオブジェクトにアイコンが表示され、

クリックでレンダラーの有効無効を切り替えられるようになります。


f:id:kan_kikuchi:20181210070644j:plain

  • Show component during play mode : エディタ実行中も機能を有効にする


なお、Cmd(Ctrl)を押しながらクリックするとワイヤーフレームを非表示に出来ます。

この時、アイコンの色が変わります(デフォルトでは青)。


Prefab (Prefab化されているか、元のPrefabが残っているか)

Prefabを有効にするとPrefab化されているオブジェクトにアイコンが表示されるようになります。

また、Prefab化の後にPrefabがなくなったオブジェクトには暗いアイコンが表示されます。


f:id:kan_kikuchi:20181210070937j:plain

  • Show icon for Broken prefabs only : Prefabがないやつだけ表示



Tag And Layer (タグとレイヤーの名前を表示)

Tag And Layerを有効にすると

オブジェクトのタグとレイヤーの名前を表示され、クリックで変更出来るようになります。


f:id:kan_kikuchi:20181210071318j:plain

  • Show component during play mode : エディタ実行中も機能を有効にする
  • Show : タグとレイヤーの両方表示するか、もしくは片方だけか
  • Show tag and layer : デフォルトで設定されてるタグやレイヤーを表示するか
  • Unit of width : 表示位置をパーセントとピクセル数のどちらで指定するか
  • Width in pixels : 表示位置の設定(Unit of widthがPixelの時)
  • Percentage width : 表示位置の設定(Unit of widthがPercentの時)
  • Alignment : 文字をどこで揃えるか
  • Label size : ラベルのサイズ
  • Label alpha if default : デフォルトのタグやレイヤーの透明度
  • Tag label color : タグのラベルの色
  • Layer label color : レイヤーのラベルの色



Color (オブジェクトを色分け)

Colorを有効にすると、端をクリックする事でオブジェクトに色を設定出来るようになります。


f:id:kan_kikuchi:20181210072545j:plain

  • Show component during play mode : エディタ実行中も機能を有効にする



GameObject Icon (オブジェクトのアイコン表示、変更)

GameObject Iconを有効にすると

オブジェクトのアイコンが表示され、クリックで変更出来るようになります。

(Inspectorの左上で設定出来るのと同じ感じ)


f:id:kan_kikuchi:20181210074109j:plain

  • Show component during play mode : エディタ実行中も機能を有効にする
  • Icon Size : アイコンの大きさ



Tag Icon (タグごとに画像を設定し識別)

Tag Iconを有効にするとタグごとに画像を設定し、表示出来るようになります。

また、クリックで変更も出来ます。


f:id:kan_kikuchi:20181210074037j:plain

  • Show component during play mode : エディタ実行中も機能を有効にする
  • Icon Size : アイコンの大きさ
  • Tag icon List : タグごとのアイコン画像(設定されていないタグは何も表示されない)



Layer Icon (レイヤーごとに画像を設定し識別)

Layer Iconを有効にするとレイヤーごとに画像を設定し、表示出来るようになります。

また、クリックで変更も出来ます。


f:id:kan_kikuchi:20181210073721j:plain

  • Show component during play mode : エディタ実行中も機能を有効にする
  • Icon Size : アイコンの大きさ
  • Layer icon List : レイヤーごとのアイコン画像(設定されていないレイヤーは何も表示されない)



Children Count (子の数を表示)

Children Countを有効にすると子のオブジェクトの数を表示出来るようになります。

なお、孫以下のオブジェクトは数に含みません。


f:id:kan_kikuchi:20181210074201j:plain

  • Show component during play mode : エディタ実行中も機能を有効にする
  • Label Size : ラベルの大きさ
  • Label color : ラベルの色



Vertices And Triangles Count (頂点数や三角形の数を表示)

Vertices And Triangles Countを有効にすると頂点数や三角形の数を表示出来るようになります。


f:id:kan_kikuchi:20181210074811j:plain

  • Show component during play mode : エディタ実行中も機能を有効にする
  • Show vertices count : 頂点数を表示する
  • Show triangles count(very slow) : 三角形の数を表示する
  • Calculate the count including children(very slow) : 子の合計を親に表示する
  • Label Size : ラベルの大きさ
  • Vertices label color : 頂点数のラベルの色
  • Triangles label color : 三角形の数のラベルの色



Components (設定されているコンポーネントの表示)

Componentsを有効にすると

オブジェクトに設定されているコンポーネントのアイコンが表示されるようになります。


f:id:kan_kikuchi:20181210075441j:plain

  • Show component during play mode : エディタ実行中も機能を有効にする
  • ignore package/classes : 表示しないPackage名やClasses名



ORDER OF COMPONENTS (アイコンの表示順)

ORDER OF COMPONENTSではQHierarchyで表示されるアイコンの表示順を設定出来ます。

なお、上に置くほどアイコンは右に表示されます。


f:id:kan_kikuchi:20181210075810j:plain


ADDITIONAL SETTINGS (その他の設定)

ADDITIONAL SETTINGSはその他の設定が行えます。


f:id:kan_kikuchi:20181210080038j:plain

  • Show QHierarchyObjectList GameObject : QHierarchyObjectListを表示するか
  • Hide icons if not fit : 表示幅が足りないときにアイコンを消すか
  • Right indent : アイコンの右側の幅
  • Show warning when using modifiers + click : よく分からず(何かしらの警告を表示?)
  • Back ground color : アイコンの背景の色
  • Active color : アクティブなアイコンの色(Visibilityなどで使う)
  • Inactive color : アクティブじゃないアイコンの色(Visibilityなどで使う)
  • Special color : 特殊な状態のアイコンの色(Visibilityなどで使う)



おわりに

そこまで大きな変化があるアセットではありませんが、

Inspectorを見ずともHierarchyをぱっと見るだけで分かるようになったり、

すぐに各種設定を切り替えられるようになったりするので、

ちょっとした作業が効率化される素敵アセットでした!