Unity has a false reputation of being “easier to use” and “easier to learn”. This is created by the presentation of a stripped down engine to the user. It is like claiming that Paint is easier than Photoshop where as in reality, it’s just as easy to draw lines in either application. The only point I will concede on here is that C# is simpler than C++. However, if you’re capable of following basic coding practices in C#, you’re capable of learning C++ in unreal.
Now, ask yourself why Unity has this reputation…
Unity gives you a “GameObject” and tells you to build what you want from it. This is very simple and easy to get started.
Unreal starts with an Actor (GO equivalent) and has already built on top of that the foundation of a game. Controllers, Pawns, Character, Movement, Proper Event System, Network replication, and the list goes on and on…
The Character header alone has 2000+ lines of well documented declarations.
In Unity, it only seems easier because you are starting from scratch and required to make your own foundation for a game. It’s easy to feel like you are making progress without realizing that you are are spending all of your time filling voids in the foundation of the engine. You run into the same steep learning curve with Unity once you attempt to implement 3rd party Assets into your project to again, fill the voids in the engine; on top of being poorly supported, buggy, and in many cases, a PITA to integrate.
With Unreal, by all means, if you want to work in “the Unity way” you could start off with the UObject class and re-build what Epic has already done for you!