mirror of
https://github.com/unity-atoms/unity-atoms.git
synced 2025-01-26 18:08:27 -05:00
72 lines
2.8 KiB
Markdown
72 lines
2.8 KiB
Markdown
# ⚛️ Unity Atoms
|
|
|
|
_Tiny modular pieces utilizing the power of Scriptable Objects_
|
|
|
|
## Influences
|
|
|
|
Unity Atoms is derrived from and a continuation of Ryan Hipple's [talk](https://www.youtube.com/watch?v=raQ3iHhE_Kk&t=2787s) from Unite 2017. The original source code can be found [here](https://github.com/roboryantron/Unite2017).
|
|
|
|
[This](https://www.youtube.com/watch?v=6vmRwLYWNRo&t=738s) talk by Richard Fine is a forerunner to Ryan Hipple's talk during Unite 2016.
|
|
|
|
## Motivation
|
|
|
|
The general approach to building scripts in Unity often generates a code base that is monolithic. This results in that your code is cumbersome to test, non-modular and hard to debug and understand.
|
|
|
|
Unity Atoms is an open source library that aims to make your game code:
|
|
|
|
- 📦 Modular _- avoid scripts and systems directly dependent on each other_
|
|
- ✏️ Editable _- Scriptable Objects makes it possible to make changes to your game at runtime_
|
|
- 🐛 Debuggable _- modular code is easier to debug than tightly coupled code_
|
|
|
|
## Installation
|
|
|
|
_Prerequisite: Since Unity Atoms is using the Unity Package Manager (UPM) you need to use Unity version 2018.3 >=_
|
|
|
|
Add the following to your `manifest.json`:
|
|
|
|
```
|
|
{
|
|
"scopedRegistries": [
|
|
{
|
|
"name": "NPM Registry",
|
|
"url": "https://registry.npmjs.org",
|
|
"scopes": [
|
|
"com.mambojambostudios.unity-atoms-core",
|
|
"com.mambojambostudios.unity-atoms-mobile",
|
|
"com.mambojambostudios.unity-atoms-mono-hooks",
|
|
"com.mambojambostudios.unity-atoms-tags",
|
|
"com.mambojambostudios.unity-atoms-scene-mgmt",
|
|
"com.mambojambostudios.unity-atoms-ui"
|
|
]
|
|
}
|
|
],
|
|
"dependencies": {
|
|
...
|
|
"com.mambojambostudios.unity-atoms-core": "2.0.0",
|
|
"com.mambojambostudios.unity-atoms-mobile": "2.0.0",
|
|
"com.mambojambostudios.unity-atoms-mono-hooks": "2.0.0",
|
|
"com.mambojambostudios.unity-atoms-tags": "2.0.0",
|
|
"com.mambojambostudios.unity-atoms-scene-mgmt": "2.0.0",
|
|
"com.mambojambostudios.unity-atoms-ui": "2.0.0",
|
|
...
|
|
}
|
|
}
|
|
```
|
|
|
|
Note that the core package is mandatory while the others are optional. If you don't want a subpackage, simply remove it from your `dependencies`.
|
|
|
|
## Documentation
|
|
|
|
The Unity Atoms docs are now published at **https://adamramberg.github.io/unity-atoms**.
|
|
|
|
## How does it work?
|
|
|
|
Read [this](https://medium.com/@adamramberg/unity-atoms-tiny-modular-pieces-utilizing-the-power-of-scriptable-objects-e8add1b95201) article on Medium for a great introduction to Unity Atoms.
|
|
|
|
## Maintainers
|
|
|
|
- [AdamRamberg](https://github.com/AdamRamberg)
|
|
- [soraphis](https://github.com/soraphis)
|
|
|
|
We are looking for more people to join the team! Contact us if you want to jump aboard.
|