LoginSignup
8
5

More than 5 years have passed since last update.

[Unity]Editor拡張で等間隔に並べたい時はBegin/EndよりScopeを使おう

Posted at

概要

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を使っていたので、
こういう便利な存在をもっと早く知りたかった…。

良いコードを書くためには逐一調べないと駄目だなと思いました。

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5