public static void CreateBuildPreferences() { BuildPreferences asset = ScriptableObject.CreateInstance <BuildPreferences>(); if (Resources.Load <BuildPreferences>("Preferences/BuildPrefs")) { Debug.Log("BuildPrefs already exists in Resources folder!"); return; } if (!AssetDatabase.IsValidFolder("Assets/unity-builder")) { AssetDatabase.CreateFolder("Assets", "unity-builder"); } if (!AssetDatabase.IsValidFolder("Assets/unity-builder/Resources")) { AssetDatabase.CreateFolder("Assets/unity-builder", "Resources"); } if (!AssetDatabase.IsValidFolder("Assets/unity-builder/Resources/Preferences")) { AssetDatabase.CreateFolder("Assets/unity-builder/Resources", "Preferences"); } AssetDatabase.CreateAsset(asset, "Assets/unity-builder/Resources/Preferences/BuildPrefs.asset"); AssetDatabase.SaveAssets(); EditorUtility.FocusProjectWindow(); Selection.activeObject = asset; }
public override void OnInspectorGUI() { base.OnInspectorGUI(); BuildPreferences bp = (BuildPreferences)target; EditorGUILayout.LabelField(""); EditorGUILayout.LabelField("Build Controls", EditorStyles.boldLabel); if (bp.Targets != null && bp.Targets.Length > 0) { EditorGUILayout.BeginVertical(GUI.skin.box); foreach (BuildTarget buildTarget in bp.Targets) { if (GUILayout.Button("Build " + buildTarget.ToString())) { BuilderEditorTools.BuildAny(buildTarget); } } EditorGUILayout.LabelField(""); if (GUILayout.Button("Build All")) { BuilderEditorTools.BuildAllProjectTargets(); } EditorGUILayout.EndVertical(); } if (GUI.changed) { EditorUtility.SetDirty(target); } }
public static void BuildAllProjectTargets() { BuildPreferences prefs = Resources.Load <BuildPreferences>("Preferences/BuildPrefs"); foreach (BuildTarget target in prefs.Targets) { BuildAny(target); } }
private static void PerformServerBuild() { BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions(); buildPlayerOptions.scenes = new[] { "Assets/scenes/Lobby.unity", "Assets/scenes/OutpostStation.unity" }; buildPlayerOptions.locationPathName = "../Tools/ContentBuilder/content/Server/Unitystation-Server"; buildPlayerOptions.target = BuildTarget.StandaloneLinux64; buildPlayerOptions.options = BuildOptions.None; BuildPreferences.SetRelease(true); BuildPipeline.BuildPlayer(buildPlayerOptions); }
private static void PerformLinuxBuild() { BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions(); buildPlayerOptions.scenes = new[] { "Assets/scenes/Lobby.unity", "Assets/scenes/OutpostStation.unity" }; buildPlayerOptions.locationPathName = "../Tools/ContentBuilder/content/Linux/Unitystation"; buildPlayerOptions.target = BuildTarget.StandaloneLinux64; buildPlayerOptions.options = BuildOptions.Development | BuildOptions.AllowDebugging | BuildOptions.CompressWithLz4HC; BuildPreferences.SetRelease(true); BuildPipeline.BuildPlayer(buildPlayerOptions); }
private static void PerformOSXBuild() { BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions(); buildPlayerOptions.scenes = new[] { "Assets/scenes/Lobby.unity", "Assets/scenes/OutpostStation.unity" }; buildPlayerOptions.locationPathName = "../Tools/ContentBuilder/content/OSX/Unitystation.app"; buildPlayerOptions.target = BuildTarget.StandaloneOSX; buildPlayerOptions.options = BuildOptions.CompressWithLz4HC; BuildPreferences.SetRelease(true); BuildPipeline.BuildPlayer(buildPlayerOptions); }
private static void PerformWindowsBuild() { BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions(); buildPlayerOptions.scenes = new[] { "Assets/scenes/Lobby.unity", "Assets/scenes/OutpostDeathmatch.unity" }; buildPlayerOptions.locationPathName = "../Tools/ContentBuilder/content/Windows/Unitystation.exe"; buildPlayerOptions.target = BuildTarget.StandaloneWindows64; buildPlayerOptions.options = BuildOptions.Development; buildPlayerOptions.options = BuildOptions.CompressWithLz4HC; BuildPreferences.SetRelease(true); BuildPipeline.BuildPlayer(buildPlayerOptions); }
private static void PerformServerBuild() { BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions(); buildPlayerOptions.scenes = new[] { "Assets/scenes/Lobby.unity", "Assets/scenes/OutpostDeathmatch.unity", "Assets/scenes/Flashlight Deathmatch.unity" }; buildPlayerOptions.locationPathName = "../Tools/ContentBuilder/content/Server/Unitystation-Server"; buildPlayerOptions.target = BuildTarget.StandaloneLinux64; buildPlayerOptions.options = BuildOptions.EnableHeadlessMode; buildPlayerOptions.options = BuildOptions.CompressWithLz4HC; BuildPreferences.SetRelease(true); BuildPipeline.BuildPlayer(buildPlayerOptions); }
public override void OnInspectorGUI() { _target = (BuildPreferences)target; DrawUnityPro(); DrawCompany(); DrawIcon(); DrawOrientations(); DrawSplash(); DrawAndroidPreferences(); DrawIOSPreferences(); DrawSDKs(); EditorUtility.SetDirty(_target); }
public static void BuildAny(BuildTarget a_platform) { string platformName = a_platform.ToString(); Debug.LogFormat("Building for {0}", platformName); // Build the player BuildPreferences prefs = Resources.Load <BuildPreferences>("Preferences/BuildPrefs"); BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions(); //Get scenes from build settings buildPlayerOptions.scenes = new string[EditorBuildSettings.scenes.Length]; for (int i = 0; i < EditorBuildSettings.scenes.Length; i++) { buildPlayerOptions.scenes[i] = EditorBuildSettings.scenes[i].path; } Debug.Log(buildPlayerOptions.scenes); buildPlayerOptions.locationPathName = string.Format("{0}\\{3}\\{2}\\{3}_{2}_{1}{4}", Path.GetFullPath(Application.dataPath + "/../" + prefs.BuildFolder), prefs.ProjectName, prefs.ProjectVersion, platformName, ResolveExtension(a_platform) ); Debug.Log(buildPlayerOptions.locationPathName); //{1}_{2}_Android.apk Debug.Log(buildPlayerOptions.locationPathName); buildPlayerOptions.target = a_platform; BuildOptions bo = new BuildOptions(); for (int i = 0; i < prefs.Options.Length; i++) { bo |= prefs.Options [i]; } buildPlayerOptions.options = bo; BuildPipeline.BuildPlayer(buildPlayerOptions); }
public void SetPreferences(BuildPreferencesType type, BuildPreferences value) { switch (type) { case BuildPreferencesType.Internal: internalPreferences = value; break; case BuildPreferencesType.Test: testPreferences = value; break; case BuildPreferencesType.Release: releasePreferences = value; break; } return; }
public BuildPreferences GetPreferences(BuildPreferencesType type) { BuildPreferences preferences = null; switch (type) { case BuildPreferencesType.Internal: preferences = internalPreferences; break; case BuildPreferencesType.Test: preferences = testPreferences; break; case BuildPreferencesType.Release: preferences = releasePreferences; break; } return(preferences); }
//IMPORTANT: ALWAYS DO WINDOWS BUILD FIRST IN YOUR BUILD CYCLE: private static void PerformWindowsBuild() { //Always build windows client first so that build info can increment the build number int buildNum = 0; var buildInfo = JsonUtility.FromJson <BuildInfo>(File.ReadAllText(Path.Combine(Application.streamingAssetsPath, "buildinfo.json"))); BuildInfo buildInfoUpdate = new BuildInfo(); if (File.Exists(Path.Combine(Application.streamingAssetsPath, "buildinfoupdate.json"))) { buildInfoUpdate = JsonUtility.FromJson <BuildInfo>(File.ReadAllText(Path.Combine(Application.streamingAssetsPath, "buildinfoupdate.json"))); //Allows build number ranges to be forced by committing a change to buildinfo.json //buildinfoupdate is gitignored so it can be stored on the build server if (buildInfoUpdate.BuildNumber < buildInfo.BuildNumber) { buildInfoUpdate.BuildNumber = buildInfo.BuildNumber; } } else { buildInfoUpdate.BuildNumber = buildInfo.BuildNumber; } buildInfoUpdate.BuildNumber++; buildInfo.BuildNumber = buildInfoUpdate.BuildNumber; File.WriteAllText(Path.Combine(Application.streamingAssetsPath, "buildinfo.json"), JsonUtility.ToJson(buildInfo)); File.WriteAllText(Path.Combine(Application.streamingAssetsPath, "buildinfoupdate.json"), JsonUtility.ToJson(buildInfoUpdate)); BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions(); buildPlayerOptions.scenes = new[] { "Assets/scenes/StartUp.unity", "Assets/scenes/Lobby.unity", "Assets/scenes/BoxStationV1.unity", "Assets/scenes/OutpostStation.unity", "Assets/scenes/PogStation.unity", "Assets/scenes/AsteroidStation.unity" }; buildPlayerOptions.locationPathName = "../Tools/ContentBuilder/content/Windows/Unitystation.exe"; buildPlayerOptions.target = BuildTarget.StandaloneWindows64; buildPlayerOptions.options = BuildOptions.CompressWithLz4HC; BuildPreferences.SetRelease(true); BuildPipeline.BuildPlayer(buildPlayerOptions); }
public static void OpenBuildFolder() { BuildPreferences prefs = Resources.Load <BuildPreferences>("Preferences/BuildPrefs"); System.Diagnostics.Process.Start(@prefs.BuildFolder); }