private void HandleTextureSettingUI() { EditorGUILayout.LabelField(styles.textureSettingLabel, EditorStyles.boldLabel); HandleBoolToIntPropertyField(m_Readable, styles.readWrite); HandleBoolToIntPropertyField(m_GenerateMipMaps, styles.generateMipMapLabel); HandleBoolToIntPropertyField(m_UseSRGB, styles.sRGBLabel); EditorGUILayout.PropertyField(m_FilterMode); var showAniso = !m_FilterMode.hasMultipleDifferentValues && !m_GenerateMipMaps.hasMultipleDifferentValues && (FilterMode)m_FilterMode.intValue != FilterMode.Point && m_GenerateMipMaps.boolValue; if (showAniso) { EditorGUILayout.IntSlider(m_AnisoLevel, 0, 16); } GUILayout.Space(EditorGUI.kSpacing); // "Show Platform Settings For" dropdown EditorGUILayout.BeginHorizontal(); { EditorGUILayout.PrefixLabel(s_Styles.platformSettingsDropDownLabel); EditorGUI.BeginChangeCheck(); m_SelectedPlatformSettings = EditorGUILayout.Popup(m_SelectedPlatformSettings, m_PlatformSettingsOptions.ToArray(), GUILayout.MaxWidth(150.0f)); if (EditorGUI.EndChangeCheck()) { // New settings option is selected... if (m_SelectedPlatformSettings == m_PlatformSettingsOptions.Count - 1) { m_PlatformSettingsOptions.Insert(m_SelectedPlatformSettings - 1, s_Styles.defaultTextForSecondaryTextureName); m_SelectedPlatformSettings--; EditorGUI.FocusTextInControl(s_Styles.secondaryTextureNameTextControlName); } SyncPlatformSettings(); } if (secondaryTextureSelected) { // trash can button if (GUILayout.Button(s_Styles.trashIcon, EditorStyles.iconButton, GUILayout.ExpandWidth(false))) { EditorGUI.EndEditingActiveTextField(); foreach (SpriteAtlas sa in targets) { sa.DeleteSecondaryPlatformSettings(m_PlatformSettingsOptions[m_SelectedPlatformSettings]); } m_PlatformSettingsOptions.RemoveAt(m_SelectedPlatformSettings); m_SelectedPlatformSettings--; if (m_SelectedPlatformSettings == 1) { m_SelectedPlatformSettings = 0; } SyncPlatformSettings(); } } } EditorGUILayout.EndHorizontal(); // Texture platform settings UI. EditorGUILayout.BeginHorizontal(); { EditorGUI.indentLevel++; GUILayout.Space(EditorGUI.indent); EditorGUI.indentLevel--; if (m_SelectedPlatformSettings == 0) { GUILayout.Space(EditorGUI.kSpacing); HandlePlatformSettingUI(null); } else { EditorGUILayout.BeginVertical(); { GUILayout.Space(EditorGUI.kSpacing); string oldSecondaryTextureName = m_PlatformSettingsOptions[m_SelectedPlatformSettings]; GUI.SetNextControlName(s_Styles.secondaryTextureNameTextControlName); EditorGUI.BeginChangeCheck(); string textFieldText = EditorGUILayout.DelayedTextField(s_Styles.secondaryTextureNameLabel, oldSecondaryTextureName); if (EditorGUI.EndChangeCheck() && oldSecondaryTextureName != textFieldText) { if (!m_PlatformSettingsOptions.Exists(x => x == textFieldText)) { m_PlatformSettingsOptions[m_SelectedPlatformSettings] = textFieldText; RenameSecondaryPlatformSettings(oldSecondaryTextureName, textFieldText); } else { Debug.LogWarning(s_Styles.nameUniquenessWarning); EditorGUI.FocusTextInControl(s_Styles.secondaryTextureNameTextControlName); } } string secondaryTextureName = m_PlatformSettingsOptions[m_SelectedPlatformSettings]; SpriteAtlas sa = (SpriteAtlas)target; EditorGUI.BeginChangeCheck(); bool value = EditorGUILayout.Toggle(s_Styles.sRGBLabel, sa.GetSecondaryColorSpace(secondaryTextureName)); if (EditorGUI.EndChangeCheck()) { sa.SetSecondaryColorSpace(secondaryTextureName, value); } HandlePlatformSettingUI(textFieldText); } EditorGUILayout.EndVertical(); } } EditorGUILayout.EndHorizontal(); }