Unity runs well with a Scripting approach and for everybody where thats not enough, you can still get the full source license. I think Unity did it quite clever in that the engine itself is c/c++ and all the interfacing with the engine is done through C#/Mono.
Unity caters to new game developers though. I'm not saying you can't make real games with it, but I'd be surprised if it was used for AAA titles, and definitely not as much as Unreal Engine.
Also, I found this comment from later in the thread really interesting about how easy it is for hackers to abuse the reversibility of managed (.NET) code. Granted, this could just be due to poor design on the developers part, but giving hackers that kind of insight into the games design cannot be helping anything.
So with that, This could be a unity issue, mono issue, or just the game developers issue.
For background reasons, I am a local memory hacker, tho the reason I am here on UE is im teaching myself how to develop games not for hacking purposes.
The game im going to talk about is the only game I know that is MP only and uses the unity engine.
This game has one big problem when it comes to hackers, what we do is simply edit the .net dll's to manipulate the game, no hooking, no debugging, no working out functions in assembly, it also meant that we could reverse the source to pretty much 100% usable source - this resulted in the end user being able to change things like the user id to stop them being able to be banned. Un-Ban able hackers? its destroying this game. [1]
I think Unity also caters to indie developers with new game ideas, as well as to rapid prototypers. (The two often overlap.) Would we have gotten games as cool and varied as Receiver[1], Broforce[2] and Hearthstone with UE? I kinda doubt it.
I completely agree and I don't mean to knock on indie developers or unity. I just was trying to make the point that for UE's bread and butter market, this is probably a good decision.