I’m currently building on a complete map/level editor in Unity. The levels will be played from another Unity file afterwards.
To allow “none Unity developers” to build maps, I’ve decided to store every piece of level data outside Unity. Much like an assets server. This might be the longest way around the real objective, but I like the idea of having the data stored outside Unity when many people co-works on a project.
I’ve managed to build Load/Save routines that use storage on an ASP.NET webserver and this allows me to reuse C# both in MONO and .NET - and I can this way choose whatever storage I want. RAW binary files, ascii text, XML, SQL - anything.
Only problem so far, is that every new 3D object has to be manually imported by me, and then I have to publish a new version of the unity file. Its hosted on a webserver, so its not hard to distribute, its just a bit annoying that you cant really load FBX files into Unity at runtime.
There can be a little trouble getting the WWW and Yield function to work right, but once you get the hang of it, its rather easy too.
Regarding building tools - yes Unity is a great and fast prototype platform, I think.
The GUI objects are a bit strange for a start, but once you learn them, they are quite fast to use too.
Also notice that the Unity Editor itself is accessible by scripts, so if you want you can extend the Unity Editor with your own level-editor scripts.
Lastly, I have managed to build an asset importer. This automatically ajusts the FBX’s when they are imported from Blender Exports. Such as turning animation import on and off, makeing every FBX the right scale and other strange things that happends when export/import from Blender to Unity.
Building this mapeditor has learned me a lot about how Unity works, how to read inputs, how to use the different events etc. so now the actually game is going to be rather simple. I should be able to cut’n’paste a lot of the subscripts from the editor itself (I hope).
So YES - go for it, if you think you can do it. Its great fun!