private void ButtonCreate(Rect rect) { GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Create Locales")) { LocalizationSO localization = LocalizationUtility.RetrieveLocalization(); string pathLocalization = AssetDatabase.GetAssetPath(localization); if (localization != null && string.IsNullOrEmpty(pathLocalization) == false) { foreach (LocaleLanguageEditor language in _mInformations.GetLanguagesSelected()) { if (localization.LocaleExists(language._mLanguage) == false) { string pathLocale = Path.Combine(Path.GetDirectoryName(pathLocalization), "Locale - " + language._mName + ".asset"); Debug.Log(pathLocale); LocalizationLocaleSO locale = ScriptableObject.CreateInstance <LocalizationLocaleSO>(); locale.Init(language._mLanguage, language._mName, language._mCode); localization.AddLocale(locale); AssetDatabase.CreateAsset(locale, pathLocale); EditorUtility.SetDirty(localization); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } } } } GUILayout.EndHorizontal(); }
private void Scroll(Rect rect) { GUILayout.BeginHorizontal(GUI.skin.box); _mScrollviewPosition = GUILayout.BeginScrollView(_mScrollviewPosition, false, false); List <LocalizationLocaleSO> locales = _mLocalization.Locales; for (int i = 0; i < locales.Count; i++) { LocalizationLocaleSO locale = locales[i]; GUIStyle styleSelected = new GUIStyle(); GUIStyle styleHorizontal = new GUIStyle(); GUIStyle styleHorizontal2 = new GUIStyle(); if (EditorGUIUtility.isProSkin) { styleHorizontal.normal.background = MakeTex(new Color(0.2f, 0.2f, 0.2f)); styleHorizontal2.normal.background = MakeTex(new Color(0.3f, 0.3f, 0.3f)); } else { styleHorizontal.normal.background = MakeTex(new Color(0.8f, 0.8f, 0.8f)); styleHorizontal2.normal.background = MakeTex(new Color(0.9f, 0.9f, 0.9f)); } styleSelected = (i % 2 == 0) ? (styleHorizontal) : (styleHorizontal2); GUILayout.BeginHorizontal(styleSelected); GUILayout.BeginHorizontal(GUILayout.Width((rect.width / 2))); LocaleLanguageEditor languageAssociated = _mInformations.GetLanguage(locale.Language); bool selected = (languageAssociated != null) ? (languageAssociated._mSelected) : (true); selected = GUILayout.Toggle(selected, locale.Name); _mInformations.SetLanguage(locale.Language, selected); GUILayout.EndHorizontal(); GUILayout.EndHorizontal(); } GUILayout.EndScrollView(); GUILayout.EndHorizontal(); }
private void Footer(Rect rect) { GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); EditorGUI.BeginChangeCheck(); GUILayout.Label("Key Mapper", GUILayout.MaxWidth(100)); _mInformations.CreateTableSelected = (LocalizationAssetTableSO)EditorGUILayout.ObjectField(_mInformations.CreateTableSelected, typeof(LocalizationAssetTableSO), false); GUILayout.EndHorizontal(); if (EditorGUI.EndChangeCheck()) { Repaint(); } if (_mInformations.CreateTableSelected == null) { GUILayout.BeginHorizontal(); GUILayout.Label("Table name", GUILayout.MaxWidth(100)); _mInformations.TextTableName = GUILayout.TextField(_mInformations.TextTableName); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Type", GUILayout.MaxWidth(100)); LocalizationAssetType type = LocalizationAssetType.Audio; type = (LocalizationAssetType)EditorGUILayout.EnumPopup(type); GUILayout.EndHorizontal(); } GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Create", GUILayout.MaxWidth(100))) { if (_mLocalization != null && _mInformations.CreateTableSelected) { LocalizationAssetTableSO table = _mInformations.CreateTableSelected; string tablePath = AssetDatabase.GetAssetPath(table); string tableFolderPath = Path.GetDirectoryName(tablePath); foreach (LocaleLanguageEditor language in _mInformations.GetLanguagesSelected()) { string potentialPath = Path.Combine(tableFolderPath, table.TableName + " - " + language._mName + ".asset"); LocalizationLocaleSO locale = _mLocalization.GetLocale(language._mLanguage); if (locale != null && table.LocaleAssetExist(language._mLanguage) == false && File.Exists(potentialPath) == false) { LocalizationLocaleAssetsSO localeAssets = ScriptableObject.CreateInstance <LocalizationLocaleAssetsSO>(); localeAssets.Init(language._mLanguage); table.LocalesAssets.Add(localeAssets); AssetDatabase.CreateAsset(localeAssets, potentialPath); EditorUtility.SetDirty(table); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } } } else if (_mLocalization != null && string.IsNullOrEmpty(_mInformations.TextTableName) == false && _mLocalization.AssetsTableExists(_mInformations.TextTableName) == false) { List <LocalizationLocaleAssetsSO> localesAssets = new List <LocalizationLocaleAssetsSO>(); string pathLocalizationAsset = AssetDatabase.GetAssetPath(_mLocalization); string pathLocalizationFolder = Path.GetDirectoryName(pathLocalizationAsset); string tableName = _mInformations.TextTableName; AssetDatabase.CreateFolder(pathLocalizationFolder, tableName); // Create the sub asset for locale foreach (LocaleLanguageEditor language in _mInformations.GetLanguagesSelected()) { LocalizationLocaleSO locale = _mLocalization.GetLocale(language._mLanguage); if (locale != null) { string pathAssetTableLocale = Path.Combine(pathLocalizationFolder, tableName, _mInformations.TextTableName + " - " + language._mName + ".asset"); LocalizationLocaleAssetsSO localeAssets = ScriptableObject.CreateInstance <LocalizationLocaleAssetsSO>(); localeAssets.Init(language._mLanguage); localesAssets.Add(localeAssets); AssetDatabase.CreateAsset(localeAssets, pathAssetTableLocale); } } // Create the asset table string pathAssetTable = Path.Combine(pathLocalizationFolder, tableName, _mInformations.TextTableName + " - Mapper.asset"); LocalizationAssetTableSO table = ScriptableObject.CreateInstance <LocalizationAssetTableSO>(); table.Init(_mInformations.TextTableName, localesAssets); _mLocalization.AddAssetTable(table); AssetDatabase.CreateAsset(table, pathAssetTable); EditorUtility.SetDirty(_mLocalization); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } } GUILayout.EndHorizontal(); GUILayout.EndVertical(); }