関連する場合に備えて、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(),"");
何が起こっているのかわかりません。この関数は他のプロジェクトで使用しているため、プロジェクトの設定かもしれませんが、このエラーの原因に関する情報を見つけることができませんでした。この関数にはいくつかの変種もありますが、どれも機能していないようです。同じファイルの他の一般的な拡張機能は問題なく動作しています。実行されないのは、この 1 つの関数セットだけです。
AbilityInfuse はシリアライズ可能とマークされており、シリアライズ可能な空のクラスでも問題は解決しません。