From ff438a6219499946cad209bb13acd1da2c68cff4 Mon Sep 17 00:00:00 2001 From: Ari Vuollet Date: Sat, 3 Dec 2022 20:45:11 +0200 Subject: [PATCH] Set default culture to InvariantCulture Fixes issues such as wrong decimal separator in floating point strings when used with parameterless .ToString() --- Source/Engine/Engine/NativeInterop.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Source/Engine/Engine/NativeInterop.cs b/Source/Engine/Engine/NativeInterop.cs index 34daf9fcf..6d1846512 100644 --- a/Source/Engine/Engine/NativeInterop.cs +++ b/Source/Engine/Engine/NativeInterop.cs @@ -797,6 +797,12 @@ namespace FlaxEngine hostExecutable = Marshal.PtrToStringUni(hostExecutableName); NativeLibrary.SetDllImportResolver(Assembly.GetExecutingAssembly(), InternalDllResolver); + // Change default culture to match with Mono runtime default culture + CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture; + CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.InvariantCulture; + System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; + System.Threading.Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture; + // TODO: benchmark collectible setting performance, maybe enable it only in editor builds? scriptingAssemblyLoadContext = new AssemblyLoadContext(null, true);