Genesis is a general-purpose, plugin-extensible code generation framework for Unity.
Genesis is architected as a .Net Core console application that leverages Roslyn code analysis to inspect a target C# codebase and generate code files where developers can build custom code generators via an extensible plugin framework. While Genesis v2 is largely engine-agnostic, it has a first-class integration into the Unity game engine.
- Unity 2019.4.X
- Scripting Runtime: .Net 4.X
- .Net Core Runtime: 3.1.X
- MSBuild: MSBuild is required for the Roslyn parsing Genesis Requires. There are a few ways to ensure this is installed and I would recommend restarting your PC after performing any of these steps (see here for MS docs on installation).
- MSBuild is installed along with Visual Studio, so having VS installed accomplishes this requirement.
- Installing the .Net Core SDK v3.1 will ensure MSBuild is installed.
- Installing the Visual Studio Build Tools here will ensure MSBuild is available.
Using this library in your project can be done in three ways:
The package is available on the openupm registry. It's recommended to install it via openupm-cli.
openupm add com.jeffcampbellmakesgames.Genesis
Using the native Unity Package Manager introduced in 2017.2, you can add this library as a package by modifying your manifest.json
file found at /ProjectName/Packages/manifest.json
to include it as a dependency. See the example below on how to reference it.
{
"dependencies": {
...
"com.jeffcampbellmakesgames.genesis" : "https://github.com/jeffcampbellmakesgames/genesis.git#release/stable",
...
}
}
You will need to have Git installed and available in your system's PATH.
The latest release can be found here as a UnityPackage file that can be downloaded and imported directly into your project's Assets folder.
To learn more about how to use JCMG Genesis, see the wiki here for more information.
If this is useful to you and/or you’d like to see future development and more tools in the future, please consider supporting it either by contributing to the Github projects (submitting bug reports or features and/or creating pull requests) or by buying me coffee using any of the links below. Every little bit helps!
For information on how to contribute and code style guidelines, please visit here.