Each Asset’s importer processes that type of Asset, and identifies the file types that it should import based on the filename extensions. Once Unity imports all code-related assets and it reloads the domain, it then moves on to the remaining Assets. This step restarts the Refresh() to ensure any new Scripted Importers take effect. It does this because new Scripted Importers could have been created, and their logic could potentially impact the import result of Assets in the Refresh queue. If Unity detects any script changes, it reloads the C# domain. For more information on this step, see documentation on script compilation assembly definition files. The compiler generates assemblies from the script files and assembly definition files in your Project. In the list of changed or added files, Unity gathers the ones that relate to code, and sends them to the script compilation pipeline. Unity stores these dynamic dependencies of an asset in an Asset Import Context. See Texture Compression, Animation Compression, Audio Compression, Build Compression. Examples of this are the target platform, the Project’s color space, the graphics API, the scripting runtime version, or the Texture compression A method of storing data that reduces the amount of storage space it requires. The importer might also use a global state conditionally based on the content of the source asset, in which case it also becomes a dynamic dependency. More info See in Glossary might depend on other Prefabs. The prefab acts as a template from which you can create new object instances in the scene. More info See in Glossary might reference another Shader, and a Prefab An asset type that allows you to store a GameObject complete with components and properties. For example, a Shader A program that runs on the GPU. This is because these dependencies are defined by the content of the source asset. Unity typically discovers the dynamic dependencies of an asset during the import process.