ssw*_*qaa 3 c# unity-game-engine
我有自定义的构建脚本,我想在其中添加更多选项。目标架构是其中之一。(我将IL2CPP用作脚本后端-我通过脚本进行设置)
根据文档,我可以使用PlayerSettings.SetArchitecture(),但似乎根本不适合我。它只有0-无,1-ARM64,2-通用的选项,我想要全部。所以我尝试使用:
PlayerSettings.SetArchitecture(BuildTargetGroup.Android, unchecked((int)AndroidArchitecture.All));
Run Code Online (Sandbox Code Playgroud)
但它不会改变任何东西,下面的几行也不会改变任何东西:
PlayerSettings.SetArchitecture(BuildTargetGroup.Android, unchecked((int)AndroidArchitecture.ARM64));
PlayerSettings.SetArchitecture(BuildTargetGroup.Android, unchecked((int)AndroidArchitecture.ARMv7));
PlayerSettings.SetArchitecture(BuildTargetGroup.Android, unchecked((int)AndroidArchitecture.X86));
Run Code Online (Sandbox Code Playgroud)
我想知道如何正确地做到这一点?
该PlayerSettings.SetArchitecture函数的第二个参数预期0为None,1ARM64和2Universal。这不是您真正想要的。
使用问题中的屏幕快照,您正在寻找PlayerSettings.Android.targetArchitectures可用于将ARM64,ARMv7或X86设置为带有AndroidArchitecture枚举的构建体系结构的属性。
要仅设置一种体系结构:
PlayerSettings.Android.targetArchitectures = AndroidArchitecture.X86;
Run Code Online (Sandbox Code Playgroud)
要仅设置多个体系结构,请使用enum标志,因为AndroidArchitecture该标志是通过Flags属性声明的,该属性允许使用按位操作来选择多个值:
AndroidArchitecture aac = AndroidArchitecture.ARM64 | AndroidArchitecture.ARMv7 | AndroidArchitecture.X86;
PlayerSettings.Android.targetArchitectures = aac;
Run Code Online (Sandbox Code Playgroud)
要么
AndroidArchitecture aac = AndroidArchitecture.ARM64;
aac |= AndroidArchitecture.ARMv7;
aac |= AndroidArchitecture.X86;
PlayerSettings.Android.targetArchitectures = aac;
Run Code Online (Sandbox Code Playgroud)
您可以在此处了解有关枚举标志的更多信息。
如果您只想使用所有架构,则只需使用AndroidArchitecture.All。
PlayerSettings.Android.targetArchitectures = AndroidArchitecture.All;
Run Code Online (Sandbox Code Playgroud)