Unity 6.3
0 онлайн 118 гостей 3 в системе
Вход
Материалы и шейдеры Шаг 369 из 442

Обнаружение асинхронной компиляции шейдера

С помощью API C# можно отслеживать состояние асинхронной компиляции шейдеров и выполнять действия при его изменении.

Это, скорее всего, полезно в продвинутом рендеринге; если шейдер-заместитель загрязняет ваши генерируемые данные, вы можете подождать до завершения компиляции, отбросить загрязненные данные и воссоздать новый набор с правильными вариантами шейдеров.

Если вы уже знаете, какой материал вас интересует, вы можете использовать ShaderUtil.IsPassCompiled для проверки состояния компиляции варианта шейдера. Когда состояние меняется с Uncompiled на Compiled, компиляция завершена.

Если вы не знаете, какой материал вас интересует, или если вы заинтересованы в более чем одном материале, вы можете использовать ShaderUtil.anythingCompiling, чтобы определить, компилирует ли Unity какие-либо варианты шейдеров асинхронно. Когда это меняется с true на false, вся текущая компиляция завершена.