コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】ExecutionEngineException: Attempting to JIT compile method

ExecutionEngineException: Attempting to JIT compile method

Unityで開発したiOS版のアプリを動作確認していた時にこの例外に遭遇しました

C#のLINQ to Objectsの下記の関数を使用していたのが原因だったようです

  • Enumerable.Cast
  • Enumerable.Contains

Enumerable.Containsに関しては、下記のような関数を自前で用意して
こちらを使用するように差し替えて対応しました

public static bool Contains<TSource>(IEnumerable<TSource> source, TSource value) where TSource : IComparable
{
    foreach (var n in source)
    {
        if (n.CompareTo(value) == 0)
        {
            return true;
        }
    }
    return false;
}

忘れないようにメモしておきます