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