The reason I recommend Unity is because it is a mature engine which has multi-platform support, including for mobile games. It also has a pretty big community behind it, so its easy for a beginner to find articles for the help they need. Yeah, it has a bit of a learning curve. You might spend a month or two, or three learning how to use the tool. But take it from me, a guy who wanted to avoid learning a third party engine as long as possible by creating his own engine, you will save SO much time trying to learn another engine / editor. I spent 12-18 months trying to build my own engine. It works, but its not very good. Certainly not good enough for a shippable game. If I wanted to add extra features and capabilities, I could look forward to spending a large amount of time implementing it, and it still wouldn't be nearly as good as the out-of-the-box implementation done by a team who spent many months sweating over the same problems. I'm not talking about adding a function or two, more like "I need to have multiplayer, which requires network code! shoot, that's going to cost me 2-3 months minimum to just get something up and running" vs. "oh, I need to add networking. Let's just look up how to use the built-in engine tools within the documentation and implement it", which would cost 2-3 days. These days, if you are a very small team and want to make a game -- and you're building your own engine -- you're doing it wrong. If you have a huge and experienced development studio which has a track record of shipping many games in the past, it isn't a bad idea to build your own engine (but you should have a really good business reason for that! Such as licensing, technical limitations, or pushing the tech forward).
Unity has multi-platform support, a mature community, and you can try it out before paying any money for it. You can also write C# code to script out any game behaviors you need, so that's pretty handy.
The most viable alternative to Unity is Unreal Engine 4 (which I'm using). You can pay $20/month to get full access to the whole engine, all of its source code, and be making games in no time (or how fast you can pick it up). You don't necessarily need to write code, you can implement game play logic using their "blueprint" system to visually script together game logic. If thats not powerful enough, you can always add in C++ code to supplement your BP code. UE4 also has multi-platform support, but is a bit newer on the market so the community hasn't had as much time to develop and create tutorial content (though some exists).
Picking either UE4 or Unity will give you more than you'll ever need, so choosing one or the other will never be a disappointment.