1.重名所有App级模块为Service 2.移除Module中心 移除SingletonManager 3.引入Service Scope Context概念 避免上下文Manager到处引用 4.修复部分bug
37 lines
1.1 KiB
C#
37 lines
1.1 KiB
C#
using UnityEngine;
|
|
|
|
namespace AlicizaX.Localization.Runtime
|
|
{
|
|
/// <summary>
|
|
/// 本地化组件。
|
|
/// </summary>
|
|
[DisallowMultipleComponent]
|
|
[AddComponentMenu("Game Framework/Localization")]
|
|
public sealed class LocalizationComponent : MonoBehaviour
|
|
{
|
|
private ILocalizationService _mLocalizationService = null;
|
|
|
|
public static string PrefsKey = Application.dataPath.GetHashCode() + "Language";
|
|
|
|
[SerializeField] private string _language;
|
|
|
|
internal void SetLanguage(string language)
|
|
{
|
|
_language = language;
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
_mLocalizationService = AppServices.GetOrCreateScope<AppScope>().Register(new LocalizationService());
|
|
if (_mLocalizationService == null)
|
|
{
|
|
Log.Info("Localization manager is invalid.");
|
|
}
|
|
#if UNITY_EDITOR
|
|
_language = UnityEditor.EditorPrefs.GetString(LocalizationComponent.PrefsKey, "None");
|
|
#endif
|
|
_mLocalizationService.Initialize(_language);
|
|
}
|
|
}
|
|
}
|