Importer/Deleter
Updated: 01/30/2020
Summary
Importer/Deleter is an extension to the Unity editor using [AssetPostprocessor.OnPostprocessAllAssets()].
OnPostprocessAllAssets is called after any number of assets have been imported and the path to the imported and removed assets can be retrieved from the argument.
The Importer/Deleter function calls the corresponding Importer/Deleter process from the acquired path.
// Retrieve the importer from the path of the imported asset and perform the import process
foreach (var assetPath in importedAssetPaths)
{
var importer = CubismImporter.GetImporterAtPath(assetPath);
if (importer == null)
{
continue;
}
importer.Import();
}
// Retrieve the importer from the path of the imported asset and perform the import process
foreach (var assetPath in deletedAssetPaths)
{
var deleter = CubismDeleter.GetDeleterAsPath(assetPath);
if (deleter == null)
{
continue;
}
deleter.Delete();
}
This is done by ‘CubismAssetProcessor.OnPostprocessAllAssets().’
CubismImporter / CubismDeleter
This class brings together Importer/Deleter.
- This structure is used to associate the Importer/Deleter type with the target file extension.
- ImporterEntry
- DeleterEntry
- List to store entries.
- private static List
_registry = new List (); - private static List
_registry = new List ();
- private static List
- Method to register Importer/Deleter to an entry.
- internal static void RegisterImporter
(string fileExtension) where T : ICubismImporter - internal static void RegisterDeleter
(string fileExtension) where T : ICubismDeleter
- internal static void RegisterImporter
- Method to obtain Importer/Deleter of the corresponding type from the path.
- 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
- The process of saving the path of an asset.
- SetAssetPath(string value)
- Importer/Deleter processing.
- Import()/Delete()
- The process of saving the Importer and re-importing assets in the Importer interface.
- Save()
CubismImporterBase / CubismDeleterBase
It inherits from the ICubismImporter/ICubismDeleter interface and is the base class for Importer/Deleter.
Importer Implementation Example
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 Implementation Example
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);
}
}
Was this article helpful?
YesNo