From b494283e9c1dee39a2ff2af8c11f0ca004d1e929 Mon Sep 17 00:00:00 2001 From: yhh <359807859@qq.com> Date: Tue, 16 Dec 2025 11:55:39 +0800 Subject: [PATCH] =?UTF-8?q?refactor(asset-system-editor):=20=E8=B5=84?= =?UTF-8?q?=E4=BA=A7=E5=85=83=E6=95=B0=E6=8D=AE=E6=94=B9=E8=BF=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - AssetMetaFile 优化 - 导出调整 --- packages/asset-system-editor/src/index.ts | 1 + .../src/meta/AssetMetaFile.ts | 48 +++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/packages/asset-system-editor/src/index.ts b/packages/asset-system-editor/src/index.ts index 39898625..24d56846 100644 --- a/packages/asset-system-editor/src/index.ts +++ b/packages/asset-system-editor/src/index.ts @@ -18,6 +18,7 @@ export { AssetMetaManager, type IAssetMeta, type IImportSettings, + type ISpriteSettings, type IMetaFileSystem, getMetaFilePath, inferAssetType, diff --git a/packages/asset-system-editor/src/meta/AssetMetaFile.ts b/packages/asset-system-editor/src/meta/AssetMetaFile.ts index 5556ff96..4fc43b2a 100644 --- a/packages/asset-system-editor/src/meta/AssetMetaFile.ts +++ b/packages/asset-system-editor/src/meta/AssetMetaFile.ts @@ -49,6 +49,36 @@ export interface IAssetMeta { lastModified?: number; } +/** + * Sprite settings for textures + * 纹理的 Sprite 设置 + */ +export interface ISpriteSettings { + /** + * Nine-patch slice border [top, right, bottom, left] + * 九宫格切片边距 + * + * Defines the non-stretchable borders for nine-patch rendering. + * 定义九宫格渲染时不可拉伸的边框区域。 + */ + sliceBorder?: [number, number, number, number]; + + /** + * Sprite pivot point (0-1 normalized) + * Sprite 锚点(0-1 归一化) + * + * Default is [0.5, 0.5] (center) + * 默认为 [0.5, 0.5](中心) + */ + pivot?: [number, number]; + + /** + * Pixels per unit for world-space rendering + * 世界空间渲染的像素单位比 + */ + pixelsPerUnit?: number; +} + /** * Import settings for different asset types * 不同资产类型的导入设置 @@ -62,6 +92,9 @@ export interface IImportSettings { wrapMode?: 'clamp' | 'repeat' | 'mirror'; premultiplyAlpha?: boolean; + // Sprite settings | Sprite 设置 + spriteSettings?: ISpriteSettings; + // Audio settings | 音频设置 audioFormat?: 'mp3' | 'ogg' | 'wav'; sampleRate?: number; @@ -385,6 +418,21 @@ export class AssetMetaManager { } } + /** + * Invalidate cache for a specific asset path + * 使特定资产路径的缓存失效 + * + * Call this when a .meta file is modified externally. + * 当 .meta 文件被外部修改时调用此方法。 + */ + invalidateCache(assetPath: string): void { + const meta = this._cache.get(assetPath); + if (meta) { + this._guidToPath.delete(meta.guid); + this._cache.delete(assetPath); + } + } + /** * Clear cache * 清除缓存