Files
com.misaki.hdrp-toon/Editor/Inspector/Helper/ConverterInitializer.cs

37 lines
1.3 KiB
C#

using System;
using UnityEditor;
using UnityEngine;
using UnityEngine.UIElements;
namespace Unity.Toonshader.Editor
{
public class ConverterInitializer
{
[InitializeOnLoadMethod]
public static void Initialize()
{
ConverterHelper.RegisterTwoSideConverter<Vector3, Quaternion>(
nameof(QuaternionToVector3Converter),
QuaternionToVector3Converter.ConvertTo,
QuaternionToVector3Converter.ConvertBack);
}
}
public static class ConverterHelper
{
public static void RegisterTwoSideConverter<TSource, TResult>(string groupName, Func<TSource, TResult> convertTo, Func<TResult, TSource> 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<T1, T2>(string groupName, Func<T1, T2> convertTo)
{
var converterGroup = new ConverterGroup(groupName);
converterGroup.AddConverter((ref T1 v) => convertTo(v));
ConverterGroups.RegisterConverterGroup(converterGroup);
}
}
}