Version: 6000.3
语言: 中文
IL2CPP 概述
Linux IL2CPP 交叉编译器

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

如果您的项目具有额外的IL2CPPUnity 开发的脚本后端,在为某些平台构建项目时,可以将其用作 Mono 的替代品。更多信息
请参阅术语表
参数设置,那么为多个平台编译可能无法按预期工作,尤其是在为 Linux 交叉编译时。

若要确定是否已设置任何其他 IL2CPP 参数,请执行下列作之一:

  • 检查环境变量是否IL2CPP_ADDITIONAL_ARGS已设置。
  • ProjectSettings/ProjectSettings.asset,检查编辑器脚本是否有一个名为additionalIl2CppArgs.

请注意,设置其他 IL2CPP 参数的方法全局应用于所有平台,如果为所需平台以外的平台设置,可能会导致编译问题。使用IPreprocessBuildWithContext钩子(如下所示)来确保 IL2CPP 参数仅针对需要它们的平台设置。

IPreprocessBuildWithContext 钩子

使用IPreprocessBuildWithContext钩子来构建脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表
或“构建”对话框以设置其他参数:

class MyCustomPreprocessBuild: IPreprocessBuildWithContext
{
    public int callbackOrder { get { return 0; } }
    public void OnPreprocessBuild(BuildCallbackContext ctx)
    {
        string addlArgs = "";
        if (ctx.Report.summary.platform == BuildTarget.StandaloneWindows || ctx.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 交叉编译器