Importer/Deleter
最終更新: 2020年1月30日
此页面适用于Cubism 4.2及更早版本的旧版本。 点击此处查看最新页面
概述
Importer/Deleter是一个使用[AssetPostprocessor.OnPostprocessAllAssets()]的Unity Editor扩展功能。
OnPostprocessAllAssets 在任意数量的资产载入完成后调用,可以从参数中获取载入和删除资产的路径。
Importer/Deleter功能从获取的路径中调用对应的Importer/Deleter处理。
// 从载入的资产路径中获取载入器并执行载入处理 foreach (var assetPath in importedAssetPaths) { var importer = CubismImporter.GetImporterAtPath(assetPath); if (importer == null) { continue; } importer.Import(); } // 从载入的资产路径中获取载入器并执行载入处理 foreach (var assetPath in deletedAssetPaths) { var deleter = CubismDeleter.GetDeleterAsPath(assetPath); if (deleter == null) { continue; } deleter.Delete(); }
这个处理是通过“CubismAssetProcessor.OnPostprocessAllAssets()”进行的。
CubismImporter / CubismDeleter
它是一个总结Importer/Deleter的类。
- 用于将Importer/Deleter的类型与对象文件的文件扩展名相关联的结构。
- ImporterEntry
- DeleterEntry
- 存储条目的列表。
- private static List
_registry = new List (); - private static List
_registry = new List ();
- private static List
- 它是一种在条目中注册Importer/Deleter的方法。
- internal static void RegisterImporter
(string fileExtension) where T : ICubismImporter - internal static void RegisterDeleter
(string fileExtension) where T : ICubismDeleter
- internal static void RegisterImporter
- 它是一种从路径中获取支持类型Importer/Deleter的方法。
- public static T GetImporterAtPath
(string assetPath) where T : class, ICubismImporter - public static ICubismImporter GetImporterAtPath(string assetPath)
- public static T GetDeleterAsPath
(string assetPath) where T : class, ICubismDeleter - public static ICubismDeleter GetDeleterAsPath(string assetPath)
- public static T GetImporterAtPath
ICubismImporter/ICubismDeleter
- 保存资产路径的处理。
- SetAssetPath(string value)
- Importer/Deleter的处理。
- Import()/Delete()
- 在Importer界面中保存Importer,并重新载入资产的处理。
- Save()
CubismImporterBase / CubismDeleterBase
它继承自ICubismImporter/ICubismDeleter接口,成为Importer/Deleter的基类。
Importer实装示例
using Live2D.Cubism.Editor.Importers; public sealed class ImporterCustomization : CubismImporterBase { private static string _extension = ".asset"; [UnityEditor.InitializeOnLoadMethod] private static void RegisterImporter() { CubismImporter.RegisterImporter<ImporterCustomization>(_extension); } public override void Import() { UnityEngine.Debug.Log("Asset Import as path : " + AssetPath); } }
Deleter的实装示例
using Live2D.Cubism.Editor.Deleters; public sealed class DeleterCustomization : CubismDeleterBase { private static string _extension = ".asset"; [UnityEditor.InitializeOnLoadMethod] private static void RegisterDeleter() { CubismDeleter.RegisterDeleter<DeleterCustomization>(_deleterAssetExtension); } public override void Delete() { UnityEngine.Debug.Log("Asset deleted as path : " + AssetPath); } }
请问这篇文章对您有帮助吗?
是否