2025-05-01 01:48:08 -07:00

62 lines
3.0 KiB
C#

using System.Collections.Generic;
using UnityEngine;
namespace UnityEditor.Localization.UI
{
class LocalizationPreferencesProvider : SettingsProvider
{
static readonly GUIContent showGameViewToolbar = EditorGUIUtility.TrTextContent("Locale Game View Menu", "Shows a menu for changing the selected locale in the GameView during playmode.");
static readonly GUIContent stringPicker = new GUIContent("String Search Picker");
static readonly GUIContent assetPicker = new GUIContent("Asset Search Picker");
static readonly GUIContent tableReferenceMthod = new GUIContent("Table Reference Method", "The method that will be used when adding a reference to a table in the editor.");
static readonly GUIContent entryReferenceMethod = new GUIContent("Entry Reference Method", "The method that will be used when adding a reference to a table entry in the editor.");
public LocalizationPreferencesProvider()
: base("Preferences/Localization", SettingsScope.User)
{
keywords = new HashSet<string>(new[] { "Localization", "Locale GameView Menu" });
}
public override void OnGUI(string searchContext)
{
GUILayout.Space(10);
var rect = GetControlRect();
EditorGUI.BeginChangeCheck();
LocalizationEditorSettings.ShowLocaleMenuInGameView = EditorGUI.Toggle(rect, showGameViewToolbar, LocalizationEditorSettings.ShowLocaleMenuInGameView);
if (EditorGUI.EndChangeCheck() && Application.isPlaying)
{
if (LocalizationEditorSettings.ShowLocaleMenuInGameView)
GameViewLanguageMenu.Show();
else
GameViewLanguageMenu.Hide();
}
rect = GetControlRect();
LocalizationEditorSettings.UseLocalizedAssetSearchPicker = EditorGUI.Toggle(rect, assetPicker, LocalizationEditorSettings.UseLocalizedAssetSearchPicker);
rect = GetControlRect();
LocalizationEditorSettings.UseLocalizedStringSearchPicker = EditorGUI.Toggle(rect, stringPicker, LocalizationEditorSettings.UseLocalizedStringSearchPicker);
rect = GetControlRect();
LocalizationEditorSettings.TableReferenceMethod = (TableReferenceMethod)EditorGUI.EnumPopup(rect, tableReferenceMthod, LocalizationEditorSettings.TableReferenceMethod);
rect = GetControlRect();
LocalizationEditorSettings.EntryReferenceMethod = (EntryReferenceMethod)EditorGUI.EnumPopup(rect, entryReferenceMethod, LocalizationEditorSettings.EntryReferenceMethod);
}
static Rect GetControlRect()
{
// Small indent to match the other preference editors.
const float indent = 8;
var rect = EditorGUILayout.GetControlRect();
rect.xMin += indent;
return rect;
}
[SettingsProvider]
static SettingsProvider CreateProjectSettingsProvider() => new LocalizationPreferencesProvider();
}
}