For LocalizeStringEvent, shouldn't WaitForCompletion be on by default?

A bit of feedback — I just found out that localized assets are loaded asynchronously by default, and you have to tick the WaitForCompletion box to force them to load synchronously.

Unfortunately, I don’t think there’s a straightforward way to change this across my whole project (especially since many of the objects are nested within prefabs), so I ended up fixing it at runtime with a script set to execute before the default time in Script Execution Order.

More generally though: correct me if I’m wrong, but isn’t asynchronous loading mostly used for downloading large assets in a live services game? For something like localized text, I’d imagine that WaitForCompletion is almost always the correct choice. Otherwise, if the text takes an extra 1-2 frames to load, you’ll see the English text flicker for a moment before it’s replaced by the localized text. It looks super unpolished, but it took me a while to catch this problem, because most of my strings were loading within one frame anyway.

Hi,

We have added an option in 1.5 to let you override the default behavior. It can be set via the string or asset database in the localization settings. Unfortunately, we cant have it on by default as not all platforms support it (WebGL) and we want things to be consistent for all platforms by default, so if you were to switch to WebGL you would not be surprised that it was no longer working.

1.5 is currently in preview, you can get 1.5.0-pre.6 by editing the projects manifest.json file and changing the version.

Hey, thanks for the update.

All right, I suppose that’s a fair compromise — good to know that the setting exists.

Actually, does this take priority over the setting on the individual components? i.e. if I tick the Initialize Synchronously box, will it ignore the WaitForCompletion bool on the individual LocalizeStringEvent components?

There’s only 2 options. Default or force synchronous