Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jeffcampbellmakesgames/Genesis
A general purpose code generator library for Unity
https://github.com/jeffcampbellmakesgames/Genesis
Last synced: 3 months ago
JSON representation
A general purpose code generator library for Unity
- Host: GitHub
- URL: https://github.com/jeffcampbellmakesgames/Genesis
- Owner: jeffcampbellmakesgames
- License: mit
- Created: 2020-04-18T10:37:05.000Z (over 4 years ago)
- Default Branch: develop
- Last Pushed: 2022-12-08T15:07:06.000Z (almost 2 years ago)
- Last Synced: 2024-07-30T06:33:22.781Z (4 months ago)
- Language: C#
- Size: 56.6 MB
- Stars: 74
- Watchers: 5
- Forks: 8
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.MD
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
- awesome-unity-packages - Genesis
README
![Unit-Tests](https://github.com/jeffcampbellmakesgames/Genesis/workflows/Unit%20Tests/badge.svg)
[![Genesis Continous Deployment](https://github.com/jeffcampbellmakesgames/Genesis/actions/workflows/publish_releases.yml/badge.svg?branch=develop)](https://github.com/jeffcampbellmakesgames/Genesis/actions/workflows/publish_releases.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![Twitter Follow](https://img.shields.io/badge/twitter-%40stampyturtle-blue.svg?style=flat&label=Follow)](https://twitter.com/stampyturtle)# 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](https://docs.microsoft.com/en-us/visualstudio/msbuild/walkthrough-using-msbuild?view=vs-2022) 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](https://docs.microsoft.com/en-us/visualstudio/msbuild/walkthrough-using-msbuild?view=vs-2022) 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](https://openupm.com/). It's recommended to install it via [openupm-cli](https://github.com/openupm/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](https://github.com/jeffcampbellmakesgames/Genesis/releases) 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](https://github.com/jeffcampbellmakesgames/Genesis/wiki/Usage) 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](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I3I2W7GX)
## Contributing
For information on how to contribute and code style guidelines, please visit [here](CONTRIBUTING.md).