この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:guest
更新日時:2026-06-11 07:07:02

タイトル: ヒエラルキー(Hierarchy)
SEOタイトル: Unity Hierarchy ウィンドウ完全ガイド(親子関係 / Prefab / Multi Scene / Sort)

この記事の要点
  • Hierarchy ウィンドウは現在開いているシーン内のすべての GameObject の階層を表示
  • 親子関係を持たせると、子は親の Transform を継承(移動・回転・スケール)
  • Prefab インスタンスは青文字、Prefab Variant は青+斜体、未保存変更は太字
  • 右クリックメニューから Create Empty / 3D Object / UI / Light / Camera を直接配置
  • Multi Scene 機能で複数シーンを同時編集、ロード状態の切り替えも可能

Hierarchy ウィンドウとは

Hierarchy ウィンドウは、現在編集中のシーンに存在するすべての GameObject をツリー構造で表示するパネルです。Project ウィンドウ(プロジェクトに保存されたアセット)と対になる存在で、Hierarchy はシーン内のオブジェクトのみを扱います。

多くの操作 (オブジェクト選択、親子関係の構築、Prefab 化、Sceneビューでの選択同期) はここを起点に行われます。

親子関係 (Parent / Child)

Hierarchy 上でドラッグ&ドロップすると親子関係を作れます。子は親の Transform を継承する重要な機能です:

  • 位置 (Position) — 親が動くと子も同じだけ動く
  • 回転 (Rotation) — 親が回ると子も同じ軸で回る
  • スケール (Scale) — 親を 2 倍にすると子の見た目も 2 倍
  • Active 状態 — 親を非アクティブにすると子も全部消える

子の Transform に表示される値は親に対する相対値 (localPosition / localRotation / localScale) です。グローバル座標は transform.position でアクセスできます。

Empty GameObject の活用

右クリック → Create Empty で空の GameObject を作れます。Transform だけを持つこのオブジェクトは多用途:

  • 複数 GameObject のグループ親(フォルダ代わり)
  • 計算用の基準座標(弾の発射位置、エフェクト原点等)
  • マネージャー系スクリプトのアタッチ先(GameManager 等)
  • Animator のルート

Hierarchy 右クリックメニュー

空白部分または GameObject 上で右クリックで主要操作一覧:

メニューサブ項目
Create Empty空 GameObject 作成(シーン直下 or 子)
3D ObjectCube / Sphere / Capsule / Cylinder / Plane / Quad / Terrain / Text 等
2D ObjectSprite / Sprite Mask / Tilemap 等
EffectsParticle System / Trail / Line
LightDirectional / Point / Spot / Area
AudioAudio Source / Audio Reverb Zone
VideoVideo Player
UICanvas / Image / Text / Button / Panel / Scroll View 等
Cameraカメラ追加
Cut / Copy / Paste / Duplicate / Delete標準操作(Paste As Child もあり)
Rename名前変更 (F2 でも可)
Set as first / last sibling同階層内の表示順

Prefab インスタンスの表示

Prefab 化された GameObject は Hierarchy 上で見た目が変わります:

表示意味
青文字Prefab インスタンス(変更なし)
青+太字Prefab インスタンス(オーバーライドあり)
青+斜体Prefab Variant
赤文字Prefab が見つからない (Missing Prefab)
グレー文字非アクティブ (gameObject.SetActive(false))

Active 状態のトグル

各 GameObject 名の左にあるチェックボックスで Active / Inactive を切替えます。Inspector の最上段にも同じチェックボックスがあります。子は親の Active 状態にも依存:

// 自分の Active 設定
go.activeSelf            // 自分のチェック (true/false)
go.activeInHierarchy     // 親もたどって実際に有効か

// SetActive
go.SetActive(false);     // 自分と子全部を非表示・スクリプト停止

検索とフィルタ

Hierarchy 上部の検索ボックスで GameObject 名検索ができます。プレフィックスで絞り込み:

  • 名前 — 名前部分一致
  • t:Camera — Type 検索(コンポーネント名)
  • t:Light — Light 全て
  • l:UI — Layer 名で検索

Sort モード

Hierarchy 右上の 横線が並んだアイコンで並び順を変更:

  • Transform Sort(既定)— Hierarchy 上の階層順
  • Alphabetical Sort — 名前順
  • カスタムソート(エディタ拡張可)

Multi Scene Editing

Unity は複数シーンを同時に開いて編集できます。レベル分けやライティングシーン分離、共通 UI の分割等に便利:

  • Project ウィンドウから別シーンを Hierarchy にドラッグ → 追加ロード
  • 各シーンはLoaded / Unloaded / Active 状態を切替可
  • 右クリック → Set Active Scene でアクティブシーン指定(新規 GameObject はここに入る)
  • 右クリック → Unload Scene / Remove Scene
using UnityEngine.SceneManagement;

// ランタイムでもマルチシーンロード可能
SceneManager.LoadScene("UI", LoadSceneMode.Additive);
SceneManager.LoadScene("Stage1", LoadSceneMode.Additive);

// アクティブシーン変更
Scene s = SceneManager.GetSceneByName("Stage1");
SceneManager.SetActiveScene(s);

便利ショートカット

キー動作
F2名前変更
Alt + ←/→ツリー折りたたみ / 展開
Alt + Shift + ←/→子を含めて折りたたみ
Ctrl + D複製
Ctrl + Shift + N新規 Empty GameObject
Alt + Shift + N選択中の子として新規 Empty
FScene ビューで選択中にフォーカス
Shift + クリック範囲選択
Ctrl + クリック追加選択

Hierarchy をロックする

Inspector と同じ右上の南京錠アイコンはありませんが、別タブを作って同様の効果が得られます。タブ右クリック → Add Tab → Hierarchy

パフォーマンス注意点

  • Hierarchy に数万単位の GameObject があるとエディタが重くなる → 動的生成して Object Pool で管理
  • 深すぎる階層(10 階層以上)は Transform 行列計算が重い → フラットに保つ
  • シーン保存時にすべての GameObject の差分が書き出される → 大規模シーンは Prefab 分割

FAQ

Q: ドラッグで親子化したら子の Transform 値が変わった
A: 親子関係を作ると、子の Position は親に対する相対値に変換されます。グローバル位置を保ちたければ、親子化前に親を原点に置くか、コードで transform.SetParent(parent, true)(第二引数 worldPositionStays=true)を使います。

Q: シーン保存時に Hierarchy の並び順が変わってしまう
A: Sort が Alphabetical になっている可能性。Transform Sort に戻してください。

Q: Hierarchy で見えない GameObject がある
A: ① 検索フィルタが残っている、② HideFlags.HideInHierarchy が設定されている、③ SerializedObject 経由で生成された一時 GameObject の可能性。