Having recently come the other direction (Unity to Unreal), I feel like I should comment. Game engines are complex and they have to meet the needs of many, many developers with different needs and abilities. In a sense, game engines are not end-products but rather are tools to help build end-products. Every game engine will have frustrations associated with using with it, and every game dev project will have its own frustrations apart from the engine. It’s the nature of the beast.
If you give up too quickly when you’re frustrated, you’ll never ship a game.
A few big difference between Unity and Unreal that I feel compelled to point out a few things that have nothing to do with the relative capabilities of the engine:
Epic really does listen to what we say, both the good and the bad. Over the course of 4.1 through 4.6, I’ve seen my list of complaints and frustration points whittled down substantially and on many occasions, I’ve gotten help directly from Epic employees. I did not get that kind o f help or support from Unity, despite paying them a lot more money.
In that same time period that Epic shipped five major editions of Unreal, Unity has shipped how many? Relying on anything in an unreleased version is dangerous. It may not show up, and even if it does, there’s no way to know when. Unity has been promising their uses a 64-bit editor since 2012 and even today, they still haven’t shipped a non-beta 64-bit editor, which is a huge pain point if you work with large levels or assets.
Unity is closed source, so if they don’t deign to fix your bug (and if you have bug or problem most people don’t), you have no other options. With Unreal, you can go into the source and fix it yourself, or pay somebody else to fix it.
Maybe Unity is a better fit for your needs, but you should at least consider the possibility that it’s not.