Exemplo n.º 1
0
    public static void Build()
    {
        var commandLineArguments = Environment.GetCommandLineArgs();
        var scenes      = new List <string>();
        var buildNumber = "";

        for (int i = 1; i < commandLineArguments.Length; i++)
        {
            if (commandLineArguments[i - 1].Equals(BUILD_PLAYER_PREFERENCES))
            {
                buildPlayerPreference = buildPlayerPreferences.FirstOrDefault(p => p.name == commandLineArguments[i]);
            }

            if (commandLineArguments[i - 1].Equals(BUILD_NUMBER))
            {
                buildNumber = commandLineArguments[i];
            }
        }

        if (buildPlayerPreference == null)
        {
            return;
        }

        foreach (var scene in buildPlayerPreference.Scenes)
        {
            scenes.Add(scene.ScenePath);
        }

        var buildPath = GenerateBuildPath(buildPlayerPreference, int.Parse(buildNumber));

        var buildReport = BuildPipeline.BuildPlayer(scenes.ToArray(), buildPath, buildPlayerPreference.BuildTarget.ToBuildTarget(), BuildOptions.None);

#if UNITY_2018_1_OR_NEWER
        if (buildReport.summary.result == BuildResult.Failed)
        {
            EditorApplication.Exit(1);
        }
        else
        {
            EditorApplication.Exit(0);
        }
#else
        if (string.IsNullOrEmpty(buildResult))
        {
            EditorApplication.Exit(0);
        }
        else
        {
            EditorApplication.Exit(1);
        }

        if (!string.IsNullOrEmpty(buildResult))
        {
            throw new Exception("Build failed: " + buildResult);
        }
#endif
    }
Exemplo n.º 2
0
    private static string GenerateBuildPath(BuildPlayerPreference buildPlayerPreference, int buildNumber)
    {
        var buildPath = "";

        if (buildPlayerPreference.BuildTarget.ToBuildTarget() == BuildTarget.StandaloneWindows64)
        {
            buildPath = buildPlayerPreference.BuildDirectory + buildNumber + "/" + "Volvo" + buildPlayerPreference.name + buildNumber + ".exe";
        }
        else if (buildPlayerPreference.BuildTarget.ToBuildTarget() == BuildTarget.iOS)
        {
            buildPath = buildPlayerPreference.BuildDirectory;
        }

        return(buildPath);
    }
Exemplo n.º 3
0
    public static void DeleteUnusedStreamingAssets(BuildTarget target, string pathToBuiltProject)
    {
        if (target == BuildTarget.iOS)
        {
            return;
        }

        var buildDataSuffix = GetBuildDataSuffix(target);

        var buildPath = Path.Combine(Path.GetDirectoryName(pathToBuiltProject), Path.GetFileNameWithoutExtension(pathToBuiltProject) + buildDataSuffix);// + "/" + resourcesPath;

        buildPath += "/" + GetStreamingAssetsPath(target);
        buildPath  = buildPath.Replace("\\", "/");
        var directories = Directory.GetDirectories(buildPath).ToList();

        if (buildPlayerPreference == null)
        {
            foreach (var scene in EditorBuildSettings.scenes)
            {
                buildPlayerPreference = buildPlayerPreferences.FirstOrDefault(p => p.Scenes.Any(sp => sp.ScenePath == scene.path));

                if (buildPlayerPreference == null)
                {
                    return;
                }

                break;
            }
        }

        foreach (var streamingAssetDirectory in buildPlayerPreference.StreamingAssetDirectories)
        {
            for (var i = 0; i < directories.Count; i++)
            {
                if (directories[i].Contains(streamingAssetDirectory))
                {
                    directories.Remove(directories[i]);
                }
            }
        }

        foreach (var directory in directories)
        {
            Debug.Log("Deleting: " + directory);
            Directory.Delete(directory, true);
        }
    }