/// <summary> /// Provides glTF export of GameObject based scenes and hierarchies. /// </summary> /// <param name="exportSettings">Export settings</param> /// <param name="gameObjectExportSettings">GameObject export settings</param> /// <param name="materialExport">Provides material conversion</param> /// <param name="deferAgent">Defer agent; decides when/if to preempt /// export to preserve a stable frame rate <seealso cref="IDeferAgent"/></param> /// <param name="logger">Interface for logging (error) messages /// <seealso cref="ConsoleLogger"/></param> public GameObjectExport( ExportSettings exportSettings = null, GameObjectExportSettings gameObjectExportSettings = null, IMaterialExport materialExport = null, IDeferAgent deferAgent = null, ICodeLogger logger = null ) { m_Settings = gameObjectExportSettings ?? new GameObjectExportSettings(); m_Writer = new GltfWriter(exportSettings, deferAgent, logger); m_MaterialExport = materialExport ?? MaterialExport.GetDefaultMaterialExport(); m_Logger = logger; }
/// <summary> /// Provides the default material exporter /// </summary> /// <returns>Default material export</returns> /// <exception cref="Exception"></exception> public static IMaterialExport GetDefaultMaterialExport() { if (m_MaterialExport == null) { var renderPipeline = RenderPipelineUtils.renderPipeline; switch (renderPipeline) { case RenderPipeline.BuiltIn: case RenderPipeline.Universal: m_MaterialExport = new StandardMaterialExport(); break; #if USING_HDRP case RenderPipeline.HighDefinition: m_MaterialExport = new HighDefinitionMaterialExport(); break; #endif default: throw new System.Exception($"Could not determine default MaterialExport (render pipeline {renderPipeline})"); } } return(m_MaterialExport); }