Unity
Unity拡張
UnityEditor

【Unity】Prefabの階層を全て表示してHierarchyと同じように編集できるエディタ拡張


はじめに

Unityを使う上でPrefabの存在は欠かせないものですが、実際に使うと使いずらい部分が何点かあります。

特に自分は、


  • Pojectビューでは2階層までしか表示されない

  • Scene上に配置しないとPrefab内部を編集できない(Deleteなど)

  • ネスト化ができない

この3つが使いずらい部分に感じています。

ネスト化に関しては @kyubuns さんが以下のサイトにてネスト化ツールを公開しているためそちらを参照するとして、今回はそれ以外を対処していきます。

https://qiita.com/kyubuns/items/5741e5281f4bb8de656c


環境

Unity 2017 4.1f1


作ったもの

いろいろと解説をする前に、早速作ったものを紹介します。

mo68j-62ce3.gif

名は『Prefab Editor』

これを使うことで、いままでScene上に配置しなければあまり編集できなかったPrefabが編集できるようになります。

このエディタ拡張では、Projectビューで選択したPrefabがPrefab EditorのWindowに表示されるようになっています。

Window上の見た目はHierarchyをそのまんま参考にしています。そして、できることも、


  • Prefabの3階層以下を表示し、選択するとInspector上にも表示される

  • GameObjectの親子関係を編集できる

  • 別のPrefabやScene上に配置されているGameObjectを中につっこめる

  • 二回クリックするとリネームできる

  • 右クリックでGameObjectを作成したり削除したりできる

  • etc...

このように、ProjectビューからScene上に配置しなくても、Hierarchy上とほとんど同じことができるようになっています。


使い方

以下のリンクからダウンロードできるpackageをダブルクリックしてUnityにインポートしてください。

https://github.com/yukiringo/PrefabEditor/raw/master/prefab_editor.unitypackage

menu.png

Window -> Prefab Editor

を選択します。

select.PNG

そして、Projectビューにある編集したいPrefabを選択してください。

Prefab EditorのWindow上に、選択したPrefabがHierarchyへ配置したように表示されていると思います。

あとは、Hierarchyでやるのと同じように編集してもらえばOKです。


簡単に解説

このまま終わるのもあれなので、使った機能について紹介します。

今回はHierarchyのような見た目にするため、Unity 5.6にて追加されたTreeViewを用いています。このTreeViewはHierarchyにも使用されているらしいです。

なので、この機能を使えばある程度楽にHierarchyを再現することができます。

詳細: https://docs.unity3d.com/Manual/TreeViewAPI.html

ですが実は自分、最初この機能の存在を知りませんでした…

なので、この機能を知るまではFoldoutなどを使って地道にやっていました(めちゃくちゃ面倒だった)

TreeViewは高機能なので、もし似たようなエディタ拡張をする際はぜひ使ってみてください。


まとめ

これでPrefabをいちいちScene上に配置せずとも編集できるようになりました。

これによって劇的に楽になるわけではないですが、少しでも作業効率が上がればいいなと思います。

こちらはgithubにて公開しています。

https://github.com/yukiringo/PrefabEditor

バグ報告や感想、意見などお待ちしております。

https://twitter.com/_ykringo