I’m building some software that utilizes the Unity physics engine for certain components.
Currently, I have a .Net Service that handles things that are better suited to plain .Net (REST API, Database Persistence, etc). Unity and this service communicate via RabbitMQ.
I’ve seen the Unity as a Library documentation: Unity - Manual: Using Unity as a Library in other applications
The recommendation from the documentation is just to have my service run the Unity build.
Some requirements and nice to haves.
- Would prefer both Windows and Linux support. Windows is our primary target, but would like to support Linux eventually.
- Service would normally operate in headless mode, but occasionally would need to run in graphics mode for debugging. I don’t have any models/textures, this would purely be gizmos and ALINE drawing objects.
- Some way to catch Unity errors/crashes and restart the process.
It seems straightforward to just have the .Net service run my unity build in a separate process.
Was planning on using CliWrap to manage the process execution.
I’ll have a heartbeat message set up between Unity and my core service.
Does anyone have any recommendations or best practices they could share? Thanks!