Hello everyone,
I try to set locale in GameManager awake method, here is my code:
private static IEnumerator ChangeLocale()
{
yield return LocalizationSettings.InitializationOperation;
_lang = PlayerPrefs.GetString("lang", _lang);
Locale locale = LocalizationSettings.AvailableLocales.GetLocale(_lang);
Locale selectedLocale = LocalizationSettings.SelectedLocale;
if (!selectedLocale.LocaleName.Equals(locale.LocaleName))
{
Debug.Log("Change");
LocalizationSettings.SelectedLocale = locale;
// PlayerPrefs.SetString("lang", "");
}
}
protected override void Awake()
{
base.Awake();
StartCoroutine(ChangeLocale());
...
}
I see that locale has changed:
but my game is crashed with this exception:
InvalidOperationException: Trying to release an object that has already been released to the pool.
UnityEngine.Pool.ObjectPool`1[T].Release (T element) (at /Users/bokken/buildslave/unity/build/Runtime/Export/ObjectPool/ObjectPools.cs:99)
UnityEngine.Pool.GenericPool`1[T].Release (T toRelease) (at /Users/bokken/buildslave/unity/build/Runtime/Export/ObjectPool/GenericPool.cs:30)
UnityEngine.Localization.Operations.GetLocalizedStringOperation.Destroy () (at Library/PackageCache/com.unity.localization@1.4.2/Runtime/Operations/GetLocalizedStringOperation.cs:88)
UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].DecrementReferenceCount () (at Library/PackageCache/com.unity.addressables@1.20.5/Runtime/ResourceManager/AsyncOperations/AsyncOperationBase.cs:229)
UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].UnityEngine.ResourceManagement.AsyncOperations.IAsyncOperation.DecrementReferenceCount () (at Library/PackageCache/com.unity.addressables@1.20.5/Runtime/ResourceManager/AsyncOperations/AsyncOperationBase.cs:589)
UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle.Release () (at Library/PackageCache/com.unity.addressables@1.20.5/Runtime/ResourceManager/AsyncOperations/AsyncOperationHandle.cs:532)
UnityEngine.ResourceManagement.ResourceManager.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) (at Library/PackageCache/com.unity.addressables@1.20.5/Runtime/ResourceManager/ResourceManager.cs:686)
UnityEngine.AddressableAssets.AddressablesImpl.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) (at Library/PackageCache/com.unity.addressables@1.20.5/Runtime/AddressablesImpl.cs:831)
UnityEngine.AddressableAssets.Addressables.Release (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) (at Library/PackageCache/com.unity.addressables@1.20.5/Runtime/Addressables.cs:1378)
UnityEngine.Localization.AddressablesInterface.ReleaseInternal (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) (at Library/PackageCache/com.unity.localization@1.4.2/Runtime/Addressables/AddressablesInterface.cs:82)
UnityEngine.Localization.AddressablesInterface.SafeRelease (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle handle) (at Library/PackageCache/com.unity.localization@1.4.2/Runtime/Addressables/AddressablesInterface.cs:47)
UnityEngine.Localization.LocalizationBehaviour.LateUpdate () (at Library/PackageCache/com.unity.localization@1.4.2/Runtime/Utilities/LocalizationBehaviour.cs:32)
Unity version: 2021.3.11f1
Also default locale when I start the app is not Latvian.