Unity is a multiplatform game development tool, designed from the start to ease creation. A fully integrated professional application, Unity just happens to contain the most powerful engine this side of a million dollars.
We've released 2 games on iOS with Unity and have found it a pleasure to work with. While it has a few shortcomings, overall it's rapid development and portability are ideal for indie game developers.
+ Platform Support - Great out of the box support for a wide variety of platforms. We're seeing about 95% shared work between PC, iOS and web
+ Unified Editor - A single editor for all platforms is ideal. The editor itself is also an amazing tool with most common features implemented well
+ Great visuals - Support for advanced effects with great shader/material support and a nice pfx editor. Visuals scale well down to mobile devices while giving enough low level access for optimizations with shaders
+ Maturity - Tools and community are becoming more mature as time goes on. answers.unity3d.com has a wealth of information. The asset store is also growing into a great asset for developers both selling and buying
- Multi-developer support - The free version doesn't support multiple developers well. There is talk of rectifying this in the future, but at this time this is a big sticking point for many people I talk to and is the reason they haven't adopted Unity
- No great 2D support - While there are alternatives, the fact 2D isn't supported so well out of the box is a little disappointing
- Bad GUI - The built in GUI is terrible. It's fine for rapid throwaway prototypes, but not much else
Overall Unity is a pleasure to work with and I highly recommend it to indie developers. The few cons we have with it all have work arounds and have not caused us to move to another tool.
I've been using Unity for about 3-4 years, and it's incredibly easy to use for those with programming/scripting experience. Unity allows people to save time during development, and allows for concentrating on the game itself, not the graphics, networking, or sound pipeline.
Before unity I was writing an entire engine by myself, which was too complexe, too time consuming and way too difficult to pull off alone in the time I wanted to do it in.
Unity has (almost) everything I need. It has it's downsides, but It has sped up my development time 10 fold since I switched over.
The only reason I am not giving a 10 is that the 2d still sucks. Duality engine seems to understand how to properly make a 2D C# engine. However for the 3D side of things, Unity is still one of the best engines out there.