/// <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;
 }
Exemple #2
0
        /// <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);
        }