コガネブログ

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

【Unity】CompilationPipeline.compilationFinished の中で EditorApplication.delayCall は呼ばれない

概要

[InitializeOnLoadMethod]
private static void Hoge()
{
    CompilationPipeline.compilationFinished += _ =>
    {
        Debug.Log( "ピカチュウ" ); // 呼ばれる

        EditorApplication.delayCall += () =>
        {
            Debug.Log( "カイリュー" ); // 呼ばれない
        };
    };
}

AssemblyReloadEvents.afterAssemblyReload の中なら
EditorApplication.delayCall は呼ばれた

[InitializeOnLoadMethod]
private static void Hoge()
{
    AssemblyReloadEvents.afterAssemblyReload += () =>
    {
        Debug.Log( "ピカチュウ" ); // 呼ばれる

        EditorApplication.delayCall += () =>
        {
            Debug.Log( "カイリュー" ); // 呼ばれる
        };
    };
}