Unity integration options

Dear Unity community,

I am a complete newcomer to Unity, considering using it for a project or not, and I have a few questions of interoperability.

  1. Can I call existing C++ code (for desktop deployment) ?
    I understand that Unity is a Mono/.Net environment, so doing PInvoke should be straighfoward, but the documentation seems to imply that a Pro version is needed.
    Is the Mono environment somehow “blocked” in some of its functionalities ?

  2. Can I create an executable that does not show any window ?
    Think an application that reads a text file and creates a video out of it. The rendering of the video would be done via Unity, but no need to show it in a window.

  3. Can I call Unity code from C++ ?
    Again, being based on mono / .Net it should be not a problem, but being a closed source product, maybe this is not possible. How would that work ?

Thanks for your answers.

  1. Unity has a feature called “plugins” which allows script code to call into native DLLs.
  2. No.
  3. No.