Exemple #1
0
 static void CleanupPostprocessors()
 {
     if (m_PostprocessStack != null)
     {
         m_PostprocessStack.RemoveAt(m_PostprocessStack.Count - 1);
         if (m_PostprocessStack.Count != 0)
         {
             PostprocessStack postStack = (PostprocessStack)m_PostprocessStack[m_PostprocessStack.Count - 1];
             m_ImportProcessors = postStack.m_ImportProcessors;
         }
     }
 }
        static void CleanupPostprocessors()
        {
            if (m_PostprocessStack != null)
            {
                m_PostprocessStack.RemoveAt(m_PostprocessStack.Count - 1);
                if (m_PostprocessStack.Count != 0)
                {
                    PostprocessStack postStack = (PostprocessStack)m_PostprocessStack[m_PostprocessStack.Count - 1];
                    m_ImportProcessors = postStack.m_ImportProcessors;
                }
            }

            if (s_AnalyticsEventsStack.Peek().postProcessorCalls.Count != 0)
            {
                EditorAnalytics.SendAssetPostprocessorsUsage(s_AnalyticsEventsStack.Peek());
            }

            s_AnalyticsEventsStack.Pop();
        }
        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);
        }
Exemple #4
0
        static void InitPostprocessors(string pathName)
        {
            m_ImportProcessors = new ArrayList();

            // @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;
                    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);
        }