ソースコード
using System.Text.RegularExpressions;
using UnityEditor;
using UnityEditor.Presets;
using UnityEngine;
public sealed class Example : AssetPostprocessor
{
private static readonly Regex GLOB_REPLACE_PATTERN
= new Regex( @"^glob:""(.*)""" );
private void OnPostprocessTexture( Texture2D texture )
{
var textureImporter = ( TextureImporter ) assetImporter;
var presetType = new PresetType( textureImporter );
var defaultPresets = Preset.GetDefaultPresetsForType( presetType );
foreach ( var defaultPreset in defaultPresets )
{
var filter = defaultPreset.filter;
filter = GLOB_REPLACE_PATTERN.Replace( filter, "$1" );
filter = Regex
.Escape( filter )
.Replace( @"\*", ".*" )
.Replace( @"\?", "." )
;
var isMatch = Regex.IsMatch( assetPath, filter );
if ( !isMatch ) continue;
defaultPreset.preset.ApplyTo( textureImporter );
}
}
}