Some of the exciting features provided by Mono for Unreal Engine.
We fully support Unreal Engine's Hot Reload functionality.
This means that whenever you rebuild your C# code in Xamarin Studio, your changes are immediately reloated into the Unreal Editor. The changes are also reflected with running games in the editor, so you can quickly iterate on your design.
On fast machines, the process of rebuilding the C# code and reloading it live takes less than a second. It feel instantaneous.
While hard core hackers are happy editing their game code
emacs and have the hot
reload functionality do all the work for them, we have also
provided a nice integration with
the MonoDevelop (and
It provides a first-class IDE with rich, accurate code completion, and powerful refactoring and analysis tools.
Full support for C# debugging is included. Simply launch your game from Xamarin Studio as a standalone editor or mobile preview process, and it will connect to the runtime debug engine, giving you full access to a rich suite of abilities to inspect and debug your code.
Your C# classes that are exposed to Unreal Engine are fully accessible from Blueprint and the Unreal Editor, just like Blueprint-accessible C++ classes.
You can continue using Blueprint for simple logic and use C# when things get more complicated.
And you can consume your C# classes from Blueprint.
The same tool that we use to generate bindings to Blueprint-exposed Unreal Engine APIs is integrated into Unreal Build Tool, and will automatically generate bindings to all of your Blueprint-exposed C++ gameplay code and engine modifications.
In addition to the automatically generated bindings to Blueprint-exposed Unreal C++ code, the Mono runtime allows accessing any native APIs, including custom C/C++ code and the native platform API.
The Getting Started tutorial shows the low-level approach to defining behaviors, but this approach can become cumbersome when defining more complex behaviors and AI. Luckily, this task can be simplified with async programming, a C# compiler feature that rewrites what appears to be linear code into a state machine.
For more details about how this helps writing complex gameplay logic, see our overview of async programming.
The Mono Mobile Profile is the core API profile in the support for Unreal Engine.
The Mono Mobile Profile removes a number of bloated .NET
from the Base Class Libraries. This is the same API profile
used by Xamarin's Android, iOS and Mac products.
Note: The Mobile Profile is not ABI compatible with existing assemblies compiled for a different profile (like the .NET desktop, Silverlight or Windows Phone). You must recompile your source code to generate assemblies targeting the Mobile profile.
A full list of the assemblies in our Mobile framework profile can be found here.
You can use Portable Class Libraries with Xamarin's Unreal Engine support. This allows the same binary library to be shared across a wide range of platforms without code modifications.
To learn more about using Portable Class Libraries with Xamarin, read our Introduction to Portable Class Libraries document.