通过脚本统一设置播放器设置目标架构

时间:2018-08-15 19:53:51

标签: c# unity3d

我有我的自定义构建脚本,我想在其中添加更多选项。 目标架构是其中之一。 (我将IL2CPP用作脚本后端-我通过脚本进行设置)

在这里您可以查看要更改的设置:

根据docs,我可以使用PlayerSettings.SetArchitecture(),但似乎根本不适合我。它只有0-无,1-ARM64,2-通用的选项,我想要全部。所以我尝试使用:

PlayerSettings.SetArchitecture(BuildTargetGroup.Android, unchecked((int)AndroidArchitecture.All));

但是它什么也没有改变,下面的几行也没有改变:

PlayerSettings.SetArchitecture(BuildTargetGroup.Android, unchecked((int)AndroidArchitecture.ARM64));
PlayerSettings.SetArchitecture(BuildTargetGroup.Android, unchecked((int)AndroidArchitecture.ARMv7));
PlayerSettings.SetArchitecture(BuildTargetGroup.Android, unchecked((int)AndroidArchitecture.X86));

我想知道如何正确地做到这一点?

1 个答案:

答案 0 :(得分:3)

PlayerSettings.SetArchitecture函数的第二个参数期望0代表无,1代表ARM64,2代表通用。这不是您真正想要的东西。


使用问题截图时,您正在寻找PlayerSettings.Android.targetArchitectures属性,该属性可用于通过AndroidArchitecture枚举将ARM64,ARMv7或X86设置为构建体系结构。

仅设置一种架构:

PlayerSettings.Android.targetArchitectures = AndroidArchitecture.X86;

要仅设置多个体系结构,请使用枚举标志,因为AndroidArchitecture是通过Flags属性声明的,该属性允许按位操作来选择多个值:

AndroidArchitecture aac = AndroidArchitecture.ARM64 | AndroidArchitecture.ARMv7 | AndroidArchitecture.X86;
PlayerSettings.Android.targetArchitectures = aac;

AndroidArchitecture aac = AndroidArchitecture.ARM64;
aac |= AndroidArchitecture.ARMv7;
aac |= AndroidArchitecture.X86;   
PlayerSettings.Android.targetArchitectures = aac;

您可以了解有关枚举标志here的更多信息。

如果您只想使用所有体系结构,则只需使用AndroidArchitecture.All

PlayerSettings.Android.targetArchitectures = AndroidArchitecture.All;