General Unity Development


I am part of a small freelance operation which develops custom software. We are currently evaluating cross platform environments for the development of highly customized (user interface) applications which often require 3D graphics and simulation. We are interested in using a game engines as they generally contain libraries we use (physics and AI). We are leaning toward using Unity due to the maturity and price of the software. The only downside we see so far is missing platform support.

I have a few questions I thought I would ask this community before contacting pre-sale support.

  • Is it possible to link against the Unity library using C/C++/Objective-C and gcc?

We require the use of C/C++/Objective-C in order to support some legacy codebases (and some new). We currently compile using gcc. For Objective-C we are using the GnuStep foundation libraries. I see there are bindings. We are curious as how we would go about using Unity in a MAKE type environment.

  • Can subsets of the library be statically linked?

In some cases we would only need a small subset of Unity. We would rather not link/load the entire engine (Physics, AI, Feature X,Y,Z).

A dynamic link against particular libraries would be acceptable.

  • Is there any planned support for Linux and/or Android?

In the near future we will need application portability across Linux/Windows/OS-X/iPhone/Android


Unity isn't a library that you can link to. It's a self-contained environment, and all coding in Unity is done using managed code in Mono (Javascript, C#, or Boo). With Unity Pro, it's possible to use to use C/C++ with plugins, but plugins can't access the Unity API and therefore aren't appropriate for game code. (Also plugins aren't automatically cross-platform, and must be compiled separately for each platform.) You can't choose to use only parts of Unity. Android support is planned, but not Linux at this time.