曾经为此奋斗了一段时间,所以想看看这里的人是否知道解决方案。我有一组接口(和一个实现):
public interface IInputvalue
{
}
public interface IInputvalue<T> : IInputvalue where T : struct
{
T Value { get; set; }
}
public class ButtonInputvalue : IInputvalue<bool>
{
private bool m_Value;
public bool Value
{
get => m_Value;
set => m_Value = value;
}
}
然后我有一个可编写脚本的对象类,该对象类继承并使用IInputvalue<T>
的实现。
public abstract class InputTrigger : ScriptableObject
{
}
public abstract class InputTrigger<T> : InputTrigger where T : IInputvalue
{
public abstract T Inputvalue { get; }
}
例如, T
可以是ButtonInputvalue
。我想将此可编写脚本的对象序列化为另一个类(如InputTrigger
),并且可以简单地对其调用.Inputvalue
以获得正确的派生类型IInputvalue
或直接获取原始值通过IInputvalue<T>.Value
。这样做的最佳方法是什么?非常感谢您的帮助。