Unity is full of wonderful time-wasters!
Every font isn’t “dynamic”. For crying out loud, you [claim to] use FreeType. I’ve used FreeType, it’s easy. Expose some goddamn functionality! The TrueType fonts I use are all described with quadratic Beziers, so they are “dynamic”. Yes, mobile has its limitations, but you don’t need to build FreeType for everything: Just bake the relevant data into whatever your runtime font objects look like. If you already do this, what is the harm in exposing it or some reasonable subset thereof?
Why are 3d text objects some weird height at higher resolutions and not what I’ve specified? They aren’t even a multiple of the height. I smell source littered with magic numbers! Can you please list your magic numbers and what you use them for somewhere? Or better yet: If the “height” is supposed to mean how “tall” the characters are, then they shouldn’t be any “taller” at higher resolutions. Please don’t tell me that the “height” is actually in “points”. Does this mean that you are using some undocumented unit of measure for model space? Do you have some standard screen resolution and pixel density with which the true height is calculated?
MonoDevelop is broken in more ways than I can count, so I won’t start.
WeakReference is still broken, if that matters.
The editor can serizalize a Vector2, but not a Guid. Yet, I can’t serialize a Vector2, but a Guid writes to a file just fine. I have to declare a 16 byte array, a Guid property, and make a custom editor so our non-coder designers can view or generate a new value. As for Vector2, yet again, I need to write another math library. So, there went 5 minutes of time spent doing something trivial, most of which was sunk into waiting for the editor to respond.
Why can’t I set individual components of a vector? Properties can have these things called “setters”, you know.
What in all hell is the editor doing when it takes an entire minute to “load” a 64x64 PNG texture referenced by nothing else in the project?
Why aren’t the editor and engine runtimes separated? Uselessly eating every exception isn’t enough. Sometimes, your braindead garbage collector moves a block of memory that was supposed to be locked while it was being marshaled for a call to unmanaged code, so then whatever was using it starts chewing up bogus data. As a result, a hilarious time-cosuming crash or infinite loop usually ensues. Waiting 5 minutes for the editor to restart on a 6-core i7 is even more fun.
In conclusion: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUUUUUUUUUUU… you know the rest.
And there sits a short sampling of problems I face every day I use this thing. You may now flame me into submission!
