using System.Collections.Generic; using GLTF.Schema; using UnityEngine; namespace Needle.Engine.Gltf { /// /// Implement to receive gltf export callbacks /// public interface IGltfExtensionHandler { void OnBeforeExport(GltfExportContext context); bool OnBeforeNodeExport(GltfExportContext context, Transform transform); // void OnBeforeNodeExport(GltfExportContext context, Transform transform); void OnAfterNodeExport(GltfExportContext context, Transform transform, int nodeId); void OnAfterExport(GltfExportContext context); void OnBeforeMaterialExport(GltfExportContext context, Material material, int materialId); void OnAfterMaterialExport(GltfExportContext context, Material material, int materialId); void OnBeforeTextureExport(GltfExportContext context, ref TextureExportSettings settings, string textureSlot); void OnAfterTextureExport(GltfExportContext context, int id, TextureExportSettings settings); /// /// Callback when serializing a mesh /// /// /// /// Add an instance of the extension to be added to the primitive void OnAfterPrimitiveExport(GltfExportContext context, Mesh mesh, List extensions); void OnAfterMeshExport(GltfExportContext currentContext, Mesh mesh, GLTFMesh gltfmesh, int index, List extensions); void OnExportFinished(GltfExportContext context); void OnCleanup(); } }