コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】HorizontalLayoutGroup や VerticalLayoutGroup の Inspector に ContentSizeFitter をアタッチするボタンを追加するエディタ拡張

はじめに

上記の記事の手順を踏むことで
HorizontalLayoutGroup や VerticalLayoutGroup の Inspector に
ContentSizeFitter をアタッチするボタンを追加できます

概要

if ( GUILayout.Button( "Add ContentSizeFitter" ) )
{
    var layoutGroup = target as HorizontalOrVerticalLayoutGroup;
    var gameObject  = layoutGroup.gameObject;

    if ( gameObject.GetComponent<ContentSizeFitter>() != null ) return;

    var fitter = Undo.AddComponent<ContentSizeFitter>( gameObject );

    fitter.horizontalFit = ContentSizeFitter.FitMode.PreferredSize;
    fitter.verticalFit   = ContentSizeFitter.FitMode.PreferredSize;
}

HorizontalOrVerticalLayoutGroupEditor クラスの OnInspectorGUI 関数に
上記のコードを追加することで

f:id:baba_s:20191023143004g:plain

HorizontalLayoutGroup や VerticalLayoutGroup の Inspector に
ContentSizeFitter をアタッチするボタンを追加できます