Is it possible to start Unity from a C# project ?

I have experimented a little with the C# scripts inside a Unity project, but can Unity be used as a standalone component ?

e.g. like:

class UnityProject
{
    static void Main(string[] args)
    {
        Unity.Application app= new Unity.Application();
        app.LoadLevel(".....");
        app.Run();
    }
}

As Jaap pointed out: It's not possible in the way your example would indicate. However, since Unity 2.6 it is possible (again?) to embed the Unity Web Player as an ActiveX control which may help you achieve the desired result of embedding a Unity game in a standalone .NET application.

Quote from the release notes, under Windows Specific Fixes:

  • Windows Web Player ActiveX control can be embedded into non-browser applications (previously it failed to download the data file)

One resource that may help you get up and running is Using COM Components with Visual Basic .NET. That's related to Visual Basic, so you may have to do a little "translation work" - but the approach should work just as well with C#.

There's also a discussion about this in the forums - so, even though this theoretically should be possible, it seems that it's not particularly reliable (in particular, there's no documentation so directly communicating with the ActiveX control will be very difficult or impossible to implement): unity activex control in windows forms

See also: Unity Answers: Is it possible to build a standalone .net application that link UnityEngine.dll

No, Unity is not a .NET program/library but is a standalone application that has the .NET runtime (actually MONO) embedded.