Other engines are more optimized. I'm using the last release of Unity 2, though, which is 2.6.1. And I've released Mac builds of my game. I don't own a Mac.
It's an alright engine. It's good for me, since I can edit the majority of the stuff visually. I've heard Shiva is better for coding, which since it's C++ I can't disagree, and UDK is better for sheer optimized power. Unity is the midpoint. I can push the limits, I still get low level control of the rendering, bla bla bla technical nonsense bla bla salads bla bla free version sucks bla bla bla.
30 day pro trial is really easy to take advantage of if you are really trying to get graphics. If you're going stylized, go ahead and use free. If you want graphics, you're going to either have to find loopholes in the end-user license or just be illegal. I'm not recommending anything illegal. If you are about graphics though, go for something other than Unity. Sure you can do it, but it'll cost some money.
Unity does use C#, so if you're going to XNA, you shouldn't have any problem going between them. Unity is very documented and stuff, and my friend is learning XNA after her trying Unity a bit. With the amount that Unity is documented though, when you don't find something, you'll probably panic and code something that will slow down the game in the long run. Right now, I'm replacing a lot of code that I coded in before because they aren't optimized at all. In Unity, all optimizing is done by YOU. Same thing with other engines and with making your own engine in XNA, but eh. When it gives you such a high-level look for so long, it feels like that aspect doesn't belong.
I do like it, though. I use 3dsMax - yes it's legal so leave me be - and although I don't use the feature, Unity has the ability to import that proprietary MAX format. I use FBX files instead, but it's nice to know. Either way, I haven't had a single problem with importing things save for scale issues - of course easily resolved. It's also great that I can import raw PSD files, OGG files, etc. No extra conversion work like for Source engine.
Compared to other engines, the shader creation isn't as great, since it's a much lower level shader programming style. The community is very helping but rarely helpful in that aspect.
At the beginning Unity has a steepish learning curve - I mean STEEP as in 90% of people I've kept in contact with at one time or another that have tried to move on from Game Maker to Unity have failed and given up and just keep sodomizing themselves with Game Maker's 3d capabilities - but its nice and easy to do new things once you get the hang of it. I mean, I just made a physically simulated water dragon that uses
this type of movement - even if I did reuse code from the
Nixies in a game in Game Maker I never finished (yet) - that bites the shit out of you and minimally communicates with other water dragons - in two days. Okay, the rigging took me a day, but the code for it took me two days. That's like a total of six hours of coding, testing, screaming 'fuck get it away from me,' and such for a completely new enemy. I mean, that would never happen in Game Maker for something this high. The comparison of course could be the Nixies implemented in Game Maker, but those STILL don't have a desired movement. That's depressing.
So, I managed to start ranting again.
In all, Unity is great for small indie projects, but lacks the sheer power that something like Shiva or UDK may offer. Nevertheless, it can smash the life out of slower things if you're careful and have a plan of attack. It also seems to be the most friendly to third-party programs, having awesome (drag and drop) integration with 3dsMax, Maya, Blender, Photoshop, and a few others. The GUI will rape your brain when you first start out, but after a while it'll feel more natural. I would recommend Unity.
My friend considers Slow Ride a Christmas song. I agree.
Edit: Oh yeah, and I would NEVER use the scripts that come with. They are shit.