private void DrawVariant(IBuildVariant buildVariant, int indentLevel) { EditorGUILayout.BeginHorizontal(); GUILayout.Space(indentLevel * 16.0f + 8.0f); var isVariantInActiveCollection = _buildInfoController.IsBuildVariantInActiveCollection(buildVariant); var newToggleValue = EditorGUILayout.Toggle("", isVariantInActiveCollection, GUILayout.Width(20)); if (newToggleValue != isVariantInActiveCollection) { _buildInfoController.ToggleBuildVariantInActiveCollection(buildVariant, newToggleValue); } var isVariantActive = buildVariant.Guid == _buildInfoController.BuildInfo.ActiveVariantGuid; var isVariantSelected = buildVariant.Guid == _buildInfoController.BuildInfo.SelectedVariantGuid; if (GUILayout.Button(buildVariant.VariantName + (isVariantActive ? " (Active)" : ""), isVariantSelected ? _selectedConfigurationStyle : _configurationStyle)) { _buildInfoController.SelectBuildVariant(buildVariant); } GUILayout.FlexibleSpace(); var icon = _buildTargetIcons.GetIconForBuildTarget(buildVariant.BuildTarget); GUILayout.Label(icon != null ? EditorGUIUtility.IconContent(icon) : new GUIContent(""), _platformIconStyle); EditorGUILayout.EndHorizontal(); DrawVariants(buildVariant, indentLevel + 1); }
public void CreateVariant(IBuildVariant parentBuildVariant = null) { var variant = new BuildVariant { VariantName = "New variant", Guid = System.Guid.NewGuid().ToString() }; SetVariantParent(variant, parentBuildVariant == null ? "" : parentBuildVariant.Guid); _buildInfoController.ActivateBuildVariant(variant); _buildInfoController.SelectBuildVariant(variant); _buildVariants.Add(variant); SaveVariant(variant); }