ソースコード
using UnityEditor.Presets; using UnityEngine; public static class PresetUtils { public static bool ApplyToWithExclusion ( Preset preset, Object target, params string[] excludedProperties ) { var current = preset.excludedProperties; preset.excludedProperties = excludedProperties; var success = preset.ApplyTo( target ); preset.excludedProperties = current; return success; } }
ApplyTo を呼び出す前に excludedProperties プロパティに
除外したいパラメータの名前を指定できるようになった
使用例
using UnityEditor; using UnityEditor.Presets; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var path = "Assets/Transform.preset"; var preset = AssetDatabase.LoadAssetAtPath<Preset>( path ); var transform = Selection.activeTransform; PresetUtils.ApplyToWithExclusion ( preset, transform, "m_LocalPosition.x", "m_LocalPosition.y", "m_LocalPosition.z" ); } }