#概要
Editor拡張でいつも項目を縦横で等間隔に揃えたい時のコードを書く時に
EditorGUILayout.BeginHorizontal();
{
//横に並べたい項目
}
EditorGUILayout.EndHorizontal();
EditorGUILayout.BeginVertical();
{
//縦に並べたい項目
}
EditorGUILayout.EndVertical();
みたいにやっていました。
中括弧のスコープを付けてどこからどこまでが範囲なのかわかりやすくしようと思いつけていたのですが、たまたまこういう記事を見つけて読んでいました。
Unity5のGUIクラスに追加されたScopeについて
https://qiita.com/kyusyukeigo/items/4642ae85d6ff075acf31
Scopeという存在を全く知らなくて、挙動も同じだったのでそちらのほうが便利なのではないか?と思い、忘備録として書きます。
#スコープにしてみる
先程と同じく縦横に等間隔に並べたい時のコードです。
using (new EditorGUILayout.HorizontalScope())
{
//横に並べたい項目
}
using (new EditorGUILayout.VerticalScope())
{
//縦に並べたい項目
}
先程のコードと比べてBegin/Endがなくなったのでスッキリしましたね。
また、usingを使っているのでVisualStudioのコードスニペットが使えるので楽に記述出来ると思います。
#終わりに
ずっとEditorGUILayout.Begin/Endを使っていたので、
こういう便利な存在をもっと早く知りたかった…。
良いコードを書くためには逐一調べないと駄目だなと思いました。