docs | ||
Examples | ||
Packages | ||
website | ||
.dockerignore | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
CHANGELOG.md | ||
CHANGELOG.md.meta | ||
CONTRIBUTING.md | ||
CONTRIBUTING.md.meta | ||
docker-compose.yml | ||
Dockerfile | ||
LICENSE.md | ||
LICENSE.md.meta | ||
omnisharp.json | ||
omnisharp.json.meta | ||
package.json | ||
package.json.meta | ||
Packages.meta | ||
README.md | ||
README.md.meta |
⚛️ 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 from Unite 2017. The original source code can be found here.
This 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-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-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 article on Medium for a great introduction to Unity Atoms.