Обнаружение асинхронной компиляции шейдера
С помощью API C# можно отслеживать состояние асинхронной компиляции шейдеров и выполнять действия при его изменении.
Это, скорее всего, полезно в продвинутом рендеринге; если шейдер-заместитель загрязняет ваши генерируемые данные, вы можете подождать до завершения компиляции, отбросить загрязненные данные и воссоздать новый набор с правильными вариантами шейдеров.
Если вы уже знаете, какой материал вас интересует, вы можете использовать ShaderUtil.IsPassCompiled для проверки состояния компиляции варианта шейдера. Когда состояние меняется с Uncompiled на Compiled, компиляция завершена.
Если вы не знаете, какой материал вас интересует, или если вы заинтересованы в более чем одном материале, вы можете использовать ShaderUtil.anythingCompiling, чтобы определить, компилирует ли Unity какие-либо варианты шейдеров асинхронно. Когда это меняется с true на false, вся текущая компиляция завершена.