我正在使用 Unity 4.6,以防万一。
完整错误(运行时错误,而不是编译时):
VerificationException: Error verifying UtilityExtensions:DeserializeFromEditorPrefs<T> (T,string): Could not merge stack at depth 1, types not compatible: T ([boxed] Complex) X T ([boxed] Complex) at 0x01ca
DFEP的定义:
public static T DeserializeFromEditorPrefs<T>(this T o, string prefix) where T : class {
这是导致异常的行(无论我使用什么类型;所有类型都会导致异常;该函数处理错误的输入数据没有问题,错误实际上是在调用中):
UtilityExtensions.DeserializeFromEditorPrefs(new AbilityInfuse(),"");
我不知道发生了什么事。我在其他项目中使用此功能,因此可能是项目设置,但我无法找到任何可能导致此错误的信息。此功能也有一些变体,但似乎都不起作用。来自同一文件的其他通用扩展没有问题,只有这一组函数无法运行。
AbilityInfuse 被标记为可序列化,即使是可序列化的空类,问题仍然存在。