using System; using UnityEditor; using UnityEngine; using UnityEngine.UIElements; namespace Misaki.HdrpToon.Editor { public class ConverterInitializer { [InitializeOnLoadMethod] public static void Initialize() { ConverterHelper.RegisterTwoSideConverter( nameof(QuaternionToVector3Converter), QuaternionToVector3Converter.ConvertTo, QuaternionToVector3Converter.ConvertBack); } } public static class ConverterHelper { public static void RegisterTwoSideConverter(string groupName, Func convertTo, Func convertBack) { var converterGroup = new ConverterGroup(groupName); converterGroup.AddConverter((ref TSource v) => convertTo(v)); converterGroup.AddConverter((ref TResult v) => convertBack(v)); ConverterGroups.RegisterConverterGroup(converterGroup); } public static void RegisterOneSideConverter(string groupName, Func convertTo) { var converterGroup = new ConverterGroup(groupName); converterGroup.AddConverter((ref T1 v) => convertTo(v)); ConverterGroups.RegisterConverterGroup(converterGroup); } } }