Setting Android Build Setting Compression Method via SCRIPT

Under build settings of android, we have an option called, compression method accepting default, LZ4HC and LZ4.

I need to set value of this field via SCRIPT.

I know something such as BuildOptions.CompressWithLz4 exists, but I can’t understand how to use it…

searched a lot but not finding my answer.

@JAAMY Before you starting build process with BuildPipeline.BuildPlayer(buildPlayerOptions) you need to modify this options. You can do something like this:

private static void BuildPlayer()
    {
        var buildPlayerOptions = CreateBuildPlayerOptions(BuildTarget.Android, IS_DEVELOPMENT_BUILD, "OUTPUT_PATH_FOR_BUILD");

        var outputDir = Path.GetDirectoryName(buildPlayerOptions.locationPathName);

        if (!string.IsNullOrEmpty(outputDir))
            Directory.CreateDirectory(outputDir);

        BuildPipeline.BuildPlayer(buildPlayerOptions);
    }

private static BuildPlayerOptions CreateBuildPlayerOptions(BuildTarget buildTarget, bool isDevelopmentBuild, string outputPath)
    {
        var buildOptions = BuildOptions.None;

        if (isDevelopmentBuild)
            buildOptions |= BuildOptions.Development;

        if (buildTarget == BuildTarget.Android)
            buildOptions |= !isDevelopmentBuild
                ? BuildOptions.CompressWithLz4
                : BuildOptions.CompressWithLz4HC;

        return new BuildPlayerOptions
        {
            target = buildTarget,
            subtarget = (int) StandaloneBuildSubtarget.Player,
            targetGroup = BuildPipeline.GetBuildTargetGroup(BuildTarget.Android),
            options = buildOptions,
            locationPathName = outputPath,
            // Put here all you scenes or use method that will construct that array
            scenes = new[] { "Assets/Scenes/Scene1.unity", "Assets/Scenes/Scene2.unity" }
        };
    }