I think I may have solved it. I checked unity “Cloud Diagnostics” (which I didn’t know existed). Looks like 99% of users are encountering crashes/errors upon Resources.Load() being called. Weird.
Just spit-balling some theories as to why this is happening:
Google Play is compressing the Resources folder in a weird way? Perhaps something is going wrong due to a non-ASCII character in the path of one of their South American / Russian cloud computer servers when processing the .aab files. Having worked with Google’s plugins, I know that their code is plagued with issues like this.
Addressables is conflicting with the Resources folder now, for some reason
Anyways…I will be switching away from Resources folder entirely, and I’ll post an update to see if it worked.
Generally you want to avoid writing code that is simply waiting to mysteriously fail simply by the future appearance of an identically-named file of a different type.
Just so you know, I have NEVER seen Resources.Load() fail, not even once in a decade of using Unity. Every time I thought “Aha! I got it failing!” it turns out it was some other failure on my part.
Everybody pooh-poohs Resources.Load() but I find that it has an extremely critical advantage over everything else they suggest I use:
Interesting! I was indeed using “Resources.Load() as T”, even sometimes “(T)Resources.Load()”, but I had no identically named assets (ie. Flame.prefab / Flame.png). Everything was unique (ie. Flame_prefab.prefab / Flame_image.png). Unless it was picking up the meta files accidentally or something (I am using PlasticSCM). Maybe Unity changed how Resource Assets type casting works behind the scenes, between Unity 2019 & 2020+
The super strange part is : it worked on all my test devices, and even when downloaded from Google Play on a fresh phone. That’s why I believe it has to do with geo-location, or a previous version caching issue with addressables
This is also possible, and could be something as subtle as casing… for instance, if you have UIStuff/Button.png it might work to import it as “uistuff/button” and suddenly it stopped, or varies on platform to platform. I always strive to match the casing PERFECTLY, including all the paths to it.
Copy/paste when putting these in is your friend. Or better yet, collect all the things into a larger ScriptableObject containers, so you can load those containers and know every object explicitly beyond that.
In Unity 2019, “en-USA” was the default CultureInfo for float.Parse(), and it used to understand ‘period’ characters as decimals points. In Unity 2020+, float.Parse() apparently uses the local CultureInfo. So in Brazil etc, it was incorrectly expecting commas as the decimal points. Not sure why, but no errors are thrown
exactly my unity experience, lost two years with this exact stuff, do some work rapidly then lose weeks figuring out some stupid bug. without wanting I’ve become a small expert in how unity should work but it doesn’t because this or that bug. and then I never finished one game. i should had created an youtube channel teaching unity to others like all those yotuber experts that have no game in their portfolio.