Skip to content

jeffcampbellmakesgames/Genesis

Repository files navigation

Unit-Tests Genesis Continous Deployment GitHub issuesLicense: MIT Twitter Follow

Genesis

About

Genesis is a general-purpose, plugin-extensible code generation framework for Unity.

Overview

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.

Minimum Requirements

  • 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.

Installing Genesis

Using this library in your project can be done in three ways:

Install via OpenUPM

The package is available on the openupm registry. It's recommended to install it via openupm-cli.

openupm add com.jeffcampbellmakesgames.Genesis

Install via GIT URL

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.

Install via classic .UnityPackage

The latest release can be found here as a UnityPackage file that can be downloaded and imported directly into your project's Assets folder.

Usage

To learn more about how to use JCMG Genesis, see the wiki here for more information.

Support

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!

ko-fi

Contributing

For information on how to contribute and code style guidelines, please visit here.