コガネブログ

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

【Unity】AssetPostprocessor の OnPreprocessAudio や OnPreprocessTexture だと ScriptableSingleton の最新の情報を取得できなかった

概要

private void OnPreprocessAudio()
{
    var example = Example.instance;
}

AssetPostprocessor の OnPreprocessAudio や OnPreprocessTexture で
ScriptableSingleton にアクセスしたところ、初回は正常に値を取得できたが

ScriptableSingleton の値を変更してから再度アクセスしても
初回に取得した値が返ってきてしまって最新の情報を取得できなかった

private static void OnPostprocessAllAssets
(
    string[] importedAssets,
    string[] deletedAssets,
    string[] movedAssets,
    string[] movedFromAssetPaths
)
{
    var example = Example.instance;
}

OnPostprocessAllAssets だと常に最新の ScriptableSingleton の情報を取得できた

検証環境

  • macOS Monterey バージョン 12.5.1
  • Unity 2022.1.11f1