Pro Lots of assets can be found in the Asset Store
For those developers who can't afford an artist, or aren't skilled enough to create their own art, Unity features an Asset Store full of a wide variety of free and paid assets that can be easily added to a game. The Asset Store has more than just music and art. It also has code and modules that can be added to games including unique lighting or GUI systems. It also has powerful asset management and attribute inspection.
Pro Offers choice of scripting languages
Pro Great editor
The editor GUI is very powerful and intuitive. It allows pausing gameplay and manipulating the scene at any time as well as progress gameplay frame by frame. It also has powerful asset management and attribute inspection.
This allows it to be more powerful than other, simpler drag-and-drop engines such as Game Maker Studio, although it can take a bit more experience to learn the workflow.
Con Encourages bad coding practices
A lot of Unity code feels like a hacked blur of arguable coding practices. C# and .Net usage in Unity is questionable. A lot of the API is done in "C Style" (public static methods, available at all times), encouraging the use public fields for everything, a lot of questionable implicit casting. The list goes on.
Con Hard to maintain projects due to vendor lock
Unity3D is proprietary, closed source game engine. Unity asks money for features like basic version control support, etc. It is impossible to migrate a game from Unity3D in case performance does not satisfy growing requirements of a project.