bbepis / XUnity.AutoTranslator

MIT License
2.02k stars 293 forks source link

OverrideFontTextMeshPro= not functioning #521

Closed aintnodawn closed 7 months ago

aintnodawn commented 7 months ago

I intended to translate a game from English to Chinese. _AutoGeneratedTranslations.txt was generated and the translation met expectations. But the translated characters were displayed as blanks in the game. The font used in the game seemed not to support Chinese. I tried switching the target language to French and it worked, however, the font just wouldn't change, no matter what I did. I added _arialuni_sdfu2018 and _arialuni_sdfu2019 after OverrideFontTextMeshPro= separately, yet the in-game font remained unchanged. Tried OverrideFont=, OverrideFontSize= and FallbackFontTextMeshPro= - it all amounted to the same thing.

This could possibly be a solution. After installing Melonloader my game crashed all the time so I can't use thie mod.

I'm pretty sure this game uses TextMesh Pro. (EnableTextMeshPro=True while others are false)

[Message: Preloader] Built from commit 49015217f3becf052d33fa4658ac19229f5daa3a [Info : BepInEx] System platform: Windows 10 64-bit [Info : BepInEx] Process bitness: 64-bit (x64) [Info : BepInEx] Running under Unity 2023.2.12f1 [Info : BepInEx] Runtime version: 6.0.7 [Info : BepInEx] Runtime information: .NET 6.0.7 [Info : Preloader] 0 patcher plugins loaded [Info : Preloader] 0 assemblies discovered [Message:AssemblyPatcher] Executing 0 patch(es) [Message: BepInEx] Chainloader initialized [Warning:Il2CppInterop] Class::Init signatures have been exhausted, using a substitute! [Info :Il2CppInterop] Registered mono type Il2CppInterop.Runtime.DelegateSupport+Il2CppToMonoDelegateReference in il2cpp domain [Info : BepInEx] 2 plugins to load [Info : BepInEx] Loading [XUnity Auto Translator 5.3.0] [Info :Il2CppInterop] Registered mono type XUnity.AutoTranslator.Plugin.Core.PluginLoader+AutoTranslatorProxyBehaviour in il2cpp domain [Info : BepInEx] Loading [XUnity Resource Redirector 2.1.0] [Message: BepInEx] Chainloader startup complete [Info :XUnity.AutoTranslator] Force loading ALL proxy assemblies. [Warning:XUnity.AutoTranslator] Failed creating fast reflection delegate through with cecil. Retrying with reflection emit... System.ArgumentException: FieldInfo type does not match return type. at XUnity.Common.Utilities.CecilFastReflectionHelper.CreateFastFieldGetter[T,F](FieldInfo fieldInfo) at XUnity.Common.Utilities.CustomFastReflectionHelper.CreateFastFieldGetterForCecil[T,F](FieldInfo fieldInfo) [Warning:XUnity.AutoTranslator] Failed creating fast reflection delegate through with reflection emit. Falling back to standard reflection... System.ArgumentException: FieldInfo type does not match return type. at XUnity.Common.Utilities.ReflectionEmitFastReflectionHelper.CreateFastFieldGetter[T,F](FieldInfo fieldInfo) at XUnity.Common.Utilities.CustomFastReflectionHelper.CreateFastFieldGetterForCecil[T,F](FieldInfo fieldInfo) [Warning:XUnity.AutoTranslator] Could not find 'UnityEngine.WWW' in IL2CPP domain even though it could be found in the managed domain. [Warning:XUnity.AutoTranslator] Could not find 'UnityEngine.GUI+ToolbarButtonSize' in IL2CPP domain even though it could be found in the managed domain. [Warning:XUnity.AutoTranslator] Could not find 'UnityEngine.ImageConversion' in IL2CPP domain even though it could be found in the managed domain. [Info :XUnity.AutoTranslator] Version of TextMesh Pro: 1.4.0. [Warning: HarmonyX] AccessTools.Method: Could not find method for type TMPro.TMP_Text and name SetCharArray and parameters (Il2CppInterop.Runtime.InteropTypes.Arrays.Il2CppStructArray, int, int) [Warning:XUnity.AutoTranslator] Could not hook 'TMP_Text_SetCharArray_Hook3'. Likely due differences between different versions of the engine or text framework. [Info :XUnity.AutoTranslator] Loaded XUnity.AutoTranslator into Unity [2023.2.12f1] game. [Info :XUnity.AutoTranslator] Attempting to load TextMesh Pro font from asset bundle. [Error :XUnity.AutoTranslator] An error occurred while loading text mesh pro override font: BepInEx\config\font\arialuni_sdf_u2018 System.NotSupportedException: Method unstripping failed at UnityEngine.AssetBundle.LoadFromFile_Internal(String path, UInt32 crc, UInt64 offset) at FastReflection(Object , Object[] ) at XUnity.Common.Utilities.CachedMethod.Invoke(Object instance, Object[] arguments) at XUnity.AutoTranslator.Plugin.Core.Fonts.FontHelper.GetTextMeshProFont(String assetBundle) at XUnity.AutoTranslator.Plugin.Core.Fonts.FontCache.GetOrCreateOverrideFontTextMeshPro() [Info :Il2CppInterop] Registered mono type XUnity.AutoTranslator.Plugin.Core.Il2CppManagedEnumerator in il2cpp domain [Warning:XUnity.AutoTranslator] Input API is not available! System.TypeLoadException: Could not load type 'UnityEngine.Input' from assembly 'UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'. at XUnity.AutoTranslator.Plugin.Core.AutoTranslationPlugin.HandleInput() at XUnity.AutoTranslator.Plugin.Core.AutoTranslationPlugin.HandleInputSafe() [Warning: Unity] Failed to change display to ExclusiveFullscreen...reverting to FullscreenWindow [Info :XUnity.AutoTranslator] Skipping plugin scan because no plugin-specific translations has been registered.