Version: 2020.3
言語: 日本語
IL2CPP の概要
Linux IL2CPP クロスコンパイラー

IL2CPP 追加引数のためのプラットフォーム固有の設定

プロジェクトに IL2CPP の追加引数が設定されている場合、複数のプラットフォーム用にコンパイルすると、期待通りに動作しないことがあります。特に Linux 用にクロスコンパイルする際にこの問題は顕著です。

IL2CPP の追加の引数がすでに設定されているかどうかを調べるには、以下のいずれかを実行します。

  • 環境変数 IL2CPP_ADDITIONAL_ARGS が設定されているかどうかを確認します。
  • ProjectSettings/ProjectSettings.asset で、エディタースクリプトに additionalIl2CppArgs という値があるかどうかを確認します。

追加の IL2CPP 引数を設定する方法はすべてのプラットフォームにグローバルに適用されるため、目的のプラットフォーム以外のプラットフォーム用に設定すると、コンパイル時に問題が発生する可能性があることに注意してください。IPreprocessBuildWithReport フックを (以下のように) 使用して、IL2CPP 引数が必要なプラットフォームにのみ設定されるようにします。

IPreprocessBuildWithReport フック

IPreprocessBuildWithReport フックを使って、スクリプトやビルドダイアログをビルドして追加の引数を設定します。

class MyCustomPreprocessBuild: IPreprocessBuildWithReport
{
    public int callbackOrder { get { return 0; } }
    public void OnPreprocessBuild(BuildReport report)
    {
        string addlArgs = "";
        if (report.summary.platform == BuildTarget.StandaloneWindows || report.summary.platform == BuildTarget.StandaloneWindows64)
            addlArgs = "--compiler-flags=\"d2ssa-cfg-jt\"";
        UnityEngine.Debug.Log($"Setting Additional IL2CPP Args = \"{addlArgs}\" for platform {report.summary.platform}");
        PlayerSettings.SetAdditionalIl2CppArgs(addlArgs);
    }
}
IL2CPP の概要
Linux IL2CPP クロスコンパイラー