C# API를 사용하여 비동기 셰이더 컴파일 상태를 모니터링하고 이 상태가 변경될 경우 동작을 수행할 수 있습니다.
이는 고급 렌더링에 굉장히 유용하며 플레이스홀더 셰이더가 생성된 데이터를 오염시킬 경우 컴파일이 완료될 때까지 기다렸다가 오염된 데이터를 폐기하고 올바른 셰이더 배리언트가 있는 새로운 세트를 다시 생성할 수 있습니다.
어떤 머티리얼에 관심이 있는지 이미 알고 있다면 ShaderUtil.IsPassCompiled를 사용하여 셰이더 배리언트의 컴파일 상태를 확인할 수 있습니다. 상태가 Uncompiled 에서 Compiled 로 변경되면 컴파일이 완료됩니다.
관심 있는 머티리얼이 없거나 둘 이상인 경우 ShaderUtil.anythingCompiling을 사용하여 Unity가 셰이더 배리언트를 비동기적으로 컴파일하는지 여부를 감지할 수 있습니다. true에서 false로 변경되면 모든 현재 컴파일이 완료된 것입니다.