ちゃこブログ

お絵かきとUnityとBlenderと日記

【Unity制作日記】EndLayoutGroup: BeginLayoutGroup must be called first.対処方法

 EasyAssetBundleツールの制作で、EditorWindow上のボタンを押してAssetBundleのビルドを走らせると必ずEndLayoutGroup: BeginLayoutGroup must be called first.というエラーが発生していました。

 これを回避するために、GUIUtility.ExitGUI()という関数を利用すると良いみたいです。実際に、ビルド処理を書いた直後にこの関数を呼び出してみたらエラーが出なくなりました。

if( GUILayout.Button( "Build" )) {
    var processor = new EasyAssetBundleBuildProcessor( SelectedData );
    processor.Build(); // ビルド処理
    GUIUtility.ExitGUI(); // 直後に記述
}

参考:
https://forum.unity.com/threads/endlayoutgroup-beginlayoutgroup-must-be-called-first.523209/