Example #1
0
    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);
    }
Example #2
0
    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);
    }