static void InitPostprocessors(AssetImportContext context, string pathName)
        {
            var importer = AssetImporter.GetAtPath(pathName);

            var analyticsEvent = new AssetPostProcessorAnalyticsData();

            analyticsEvent.importActionId = ((int)Math.Floor(importer.GetImportStartTime() * 1000)).ToString();
            s_AnalyticsEventsStack.Push(analyticsEvent);

            m_ImportProcessors = new SortedSet <AssetPostprocessor>(new CompareAssetImportPriority());
            foreach (var postprocessorInfo in GetSortedStaticPostprocessorTypes(importer.GetType()))
            {
                var assetPostprocessor = (AssetPostprocessor)Activator.CreateInstance(postprocessorInfo.Type);
                assetPostprocessor.assetPath = pathName;
                assetPostprocessor.context   = context;
                m_ImportProcessors.Add(assetPostprocessor);
            }

            foreach (var postprocessorInfo in GetSortedDynamicPostprocessorTypes(importer.GetType()))
            {
                var assetPostprocessor = (AssetPostprocessor)Activator.CreateInstance(postprocessorInfo.Type);
                assetPostprocessor.assetPath = pathName;
                assetPostprocessor.context   = context;
                m_ImportProcessors.Add(assetPostprocessor);
            }

            // Setup postprocessing stack to support reentrancy (Import asset immediate)
            if (m_PostprocessStack == null)
            {
                m_PostprocessStack = new Stack <SortedSet <AssetPostprocessor> >();
            }
            m_PostprocessStack.Push(m_ImportProcessors);
        }
        static void InitPostprocessorsForTextureGenerator(string pathName)
        {
            var analyticsEvent = new AssetPostProcessorAnalyticsData();

            analyticsEvent.importActionId = "None";
            s_AnalyticsEventsStack.Push(analyticsEvent);

            m_ImportProcessors = new SortedSet <AssetPostprocessor>(new CompareAssetImportPriority());
            foreach (var postprocessorInfo in GetSortedStaticPostprocessorTypes(typeof(TextureImporter)))
            {
                var assetPostprocessor = (AssetPostprocessor)Activator.CreateInstance(postprocessorInfo.Type);
                assetPostprocessor.assetPath = pathName;
                assetPostprocessor.context   = null;
                m_ImportProcessors.Add(assetPostprocessor);
            }

            foreach (var postprocessorInfo in GetSortedDynamicPostprocessorTypes(typeof(TextureImporter)))
            {
                var assetPostprocessor = (AssetPostprocessor)Activator.CreateInstance(postprocessorInfo.Type);
                assetPostprocessor.assetPath = pathName;
                assetPostprocessor.context   = null;
                m_ImportProcessors.Add(assetPostprocessor);
            }

            // Setup postprocessing stack to support reentrancy (Import asset immediate)
            if (m_PostprocessStack == null)
            {
                m_PostprocessStack = new Stack <SortedSet <AssetPostprocessor> >();
            }
            m_PostprocessStack.Push(m_ImportProcessors);
        }
        static void InitPostprocessors(AssetImportContext context, string pathName)
        {
            m_ImportProcessors = new ArrayList();
            var analyticsEvent = new AssetPostProcessorAnalyticsData();

            analyticsEvent.importActionId = ((int)Math.Floor(AssetImporter.GetAtPath(pathName).GetImportStartTime() * 1000)).ToString();
            s_AnalyticsEventsStack.Push(analyticsEvent);

            // @TODO: This is just a temporary workaround for the import settings.
            // We should add importers to the asset, persist them and show an inspector for them.
            foreach (Type assetPostprocessorClass in GetCachedAssetPostprocessorClasses())
            {
                try
                {
                    var assetPostprocessor = Activator.CreateInstance(assetPostprocessorClass) as AssetPostprocessor;
                    assetPostprocessor.assetPath = pathName;
                    assetPostprocessor.context   = context;
                    m_ImportProcessors.Add(assetPostprocessor);
                }
                catch (MissingMethodException)
                {
                    LogPostProcessorMissingDefaultConstructor(assetPostprocessorClass);
                }
                catch (Exception e)
                {
                    Debug.LogException(e);
                }
            }

            m_ImportProcessors.Sort(new CompareAssetImportPriority());

            // Setup postprocessing stack to support rentrancy (Import asset immediate)
            PostprocessStack postStack = new PostprocessStack();

            postStack.m_ImportProcessors = m_ImportProcessors;
            if (m_PostprocessStack == null)
            {
                m_PostprocessStack = new ArrayList();
            }
            m_PostprocessStack.Add(postStack);
        }