public void Init(BuildTarget buildTarget) { var configName = EditorPrefs.GetString(ConfigKey, "Standalone"); var buildConfigs = GetAllInstances <BuildConfig>(); if (buildConfigs.Length == 1 && buildConfigs[0] != null) { buildConfig = buildConfigs[0]; configName = buildConfig.platform.name; } int buildTargetId = (int)buildTarget; int index = 1; var type = typeof(BuildTarget); var targets = (int[])Enum.GetValues(type); Array.Sort(targets); foreach (int target in targets) { if (buildTargetId == target) { buildTargetBitMask = index; break; } index <<= 1; } platformConfigs = GetAllInstances <PlatformConfig>(); for (int i = 0; i < platformConfigs.Length; i++) { if (configName.Equals(platformConfigs[i].name) && ((int)platformConfigs[i].targets & buildTargetBitMask) != 0) { selected = i; } } BuildExtras.GetVersion(out major, out minor, out build); }
void OnGUI() { EditorGUILayout.Space(); GUILayout.BeginVertical("Box"); GUILayout.Label("Version:", EditorStyles.boldLabel); GUILayout.BeginHorizontal(); GUILayout.Space(10); GUILayout.Label("Major"); GUILayout.Label("Minor"); GUILayout.Label("Build"); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Space(10); major = EditorGUILayout.IntField(major); minor = EditorGUILayout.IntField(minor); build = EditorGUILayout.IntField(build); GUILayout.EndHorizontal(); if (GUILayout.Button("Increase", GUILayout.Width(120))) { BuildExtras.IncreaseVersion(); BuildExtras.GetVersion(out major, out minor, out build); } GUILayout.EndVertical(); EditorGUILayout.Space(); GUILayout.BeginVertical("Box"); GUILayout.Label("Build configuration:", EditorStyles.boldLabel); GUILayout.BeginHorizontal(); GUILayout.Space(10); GUILayout.BeginVertical(); for (int i = 0; i < platformConfigs.Length; i++) { var config = platformConfigs[i]; bool disabled = ((int)config.targets & buildTargetBitMask) == 0; if (disabled) { GUI.enabled = false; } if (GUILayout.Toggle(i == selected, " " + config.name, EditorStyles.radioButton)) { if (i != selected) { selected = i; buildConfig.platform = platformConfigs[selected]; EditorUtility.SetDirty(buildConfig); } } if (disabled) { GUI.enabled = true; } } GUILayout.EndVertical(); GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUILayout.FlexibleSpace(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); EditorGUI.BeginDisabledGroup(selected == -1); if (GUILayout.Button("Continue", GUILayout.Width(120))) { EditorPrefs.SetString(ConfigKey, platformConfigs[selected].name); AssetDatabase.SaveAssets(); BuildExtras.GetVersion(out int oldMajor, out int oldMinor, out int oldBuild); if (oldBuild != build || oldMinor != minor || oldMajor != major) { BuildExtras.SetVersion(major, minor, build); } Close(); callback?.Invoke(); return; } EditorGUI.EndDisabledGroup(); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.Space(16); }