版本:2022.3
语言: 英语
IL2CPP概述
Linux IL2CPP交叉编译器

处理IL2CPP附加参数的平台特定设置

如果您的项目设置了额外的 IL2CPPUnity开发的一个脚本后端,当为某些平台构建项目时,可以作为Mono的替代品使用。 更多信息
术语表中查看
参数,那么针对多个平台进行编译可能不会按预期工作,尤其是在为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交叉编译器