Effin Gripe!

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!

Yup, that looks just like a gripe.

Obligatory popcorn.

Ugh, Unity’s font handling is one of the most awkward things I’ve ever used. I had to end up writing my own font handler to get my fonts to maintain proper proportions. Though I take it from the editor/runtime separation thing you’re working on Windows, huh?

Ah, is it? Could you elaborate? I’d not heard that before and I might want to use them.

Wouldn’t this kind of criticism be best put straight forward to the developers them selves? or maybe make one thread where people can post there issues with unity and the the staff can have a look at what is most important to be fixed. Another large thing I hear being complained about is the lack of a node editor for the artists :L