0

我正在使用 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 被标记为可序列化,即使是可序列化的空类,问题仍然存在。

4

1 回答 1

0

Unity 在构建到 Web Player 时使用高安全性设置。我不确切知道任何设置是什么,但切换到 PC 版本删除了阻止该功能被“验证”的任何安全设置。

于 2015-06-05T03:21:50.760 回答