Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/unity-atoms/unity-atoms
⚛️ Tiny modular pieces utilizing the power of Scriptable Objects
https://github.com/unity-atoms/unity-atoms
Last synced: 13 days ago
JSON representation
⚛️ Tiny modular pieces utilizing the power of Scriptable Objects
- Host: GitHub
- URL: https://github.com/unity-atoms/unity-atoms
- Owner: unity-atoms
- License: mit
- Created: 2018-10-30T18:50:18.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-01-07T19:23:25.000Z (10 months ago)
- Last Synced: 2024-05-23T06:53:14.880Z (6 months ago)
- Language: C#
- Size: 7.13 MB
- Stars: 1,171
- Watchers: 31
- Forks: 119
- Open Issues: 71
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# ⚛️ Unity Atoms
[![openupm](https://img.shields.io/npm/v/com.unity-atoms.unity-atoms-core?label=core®istry_uri=https://package.openupm.com)](https://openupm.com/packages/com.unity-atoms.unity-atoms-core/)
[![openupm](https://img.shields.io/npm/v/com.unity-atoms.unity-atoms-base-atoms?label=base-atoms®istry_uri=https://package.openupm.com)](https://openupm.com/packages/com.unity-atoms.unity-atoms-base-atoms/)
[![openupm](https://img.shields.io/npm/v/com.unity-atoms.unity-atoms-fsm?label=fsm®istry_uri=https://package.openupm.com)](https://openupm.com/packages/com.unity-atoms.unity-atoms-fsm/)
[![openupm](https://img.shields.io/npm/v/com.unity-atoms.unity-atoms-mobile?label=mobile®istry_uri=https://package.openupm.com)](https://openupm.com/packages/com.unity-atoms.unity-atoms-mobile/)
[![openupm](https://img.shields.io/npm/v/com.unity-atoms.unity-atoms-mono-hooks?label=mono-hooks®istry_uri=https://package.openupm.com)](https://openupm.com/packages/com.unity-atoms.unity-atoms-mono-hooks/)
[![openupm](https://img.shields.io/npm/v/com.unity-atoms.unity-atoms-tags?label=tags®istry_uri=https://package.openupm.com)](https://openupm.com/packages/com.unity-atoms.unity-atoms-tags/)
[![openupm](https://img.shields.io/npm/v/com.unity-atoms.unity-atoms-scene-mgmt?label=scene-mgmt®istry_uri=https://package.openupm.com)](https://openupm.com/packages/com.unity-atoms.unity-atoms-scene-mgmt/)
[![openupm](https://img.shields.io/npm/v/com.unity-atoms.unity-atoms-ui?label=ui®istry_uri=https://package.openupm.com)](https://openupm.com/packages/com.unity-atoms.unity-atoms-ui/)
[![openupm](https://img.shields.io/npm/v/com.unity-atoms.unity-atoms-input-system?label=input-system®istry_uri=https://package.openupm.com)](https://openupm.com/packages/com.unity-atoms.unity-atoms-input-system/)_Tiny modular pieces utilizing the power of Scriptable Objects_
## Influences
Unity Atoms is derived 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
### NPM
_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` (which is located under your project location in the folder `Packages`):
```
{
"scopedRegistries": [
{
"name": "NPM Registry",
"url": "https://registry.npmjs.org",
"scopes": [
"com.unity-atoms.unity-atoms-core",
"com.unity-atoms.unity-atoms-base-atoms",
"com.unity-atoms.unity-atoms-fsm",
"com.unity-atoms.unity-atoms-mobile",
"com.unity-atoms.unity-atoms-mono-hooks",
"com.unity-atoms.unity-atoms-tags",
"com.unity-atoms.unity-atoms-scene-mgmt",
"com.unity-atoms.unity-atoms-ui",
"com.unity-atoms.unity-atoms-input-system"
]
}
],
"dependencies": {
...
"com.unity-atoms.unity-atoms-core": "4.5.0",
"com.unity-atoms.unity-atoms-base-atoms": "4.5.0",
"com.unity-atoms.unity-atoms-fsm": "4.5.0",
"com.unity-atoms.unity-atoms-mobile": "4.5.0",
"com.unity-atoms.unity-atoms-mono-hooks": "4.5.0",
"com.unity-atoms.unity-atoms-tags": "4.5.0",
"com.unity-atoms.unity-atoms-scene-mgmt": "4.5.0",
"com.unity-atoms.unity-atoms-ui": "4.5.0",
"com.unity-atoms.unity-atoms-input-system": "4.5.0",
...
}
}
```Note that the core and base atoms packages are mandatory while the others are optional. If you don't want a subpackage, simply remove it from your `dependencies`.
Note that subpackages may have additional dependencies.### 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).
```
# required
openupm add com.unity-atoms.unity-atoms-core
openupm add com.unity-atoms.unity-atoms-base-atoms# optional
openupm add com.unity-atoms.unity-atoms-fsm
openupm add com.unity-atoms.unity-atoms-mobile
openupm add com.unity-atoms.unity-atoms-mono-hooks
openupm add com.unity-atoms.unity-atoms-tags
openupm add com.unity-atoms.unity-atoms-scene-mgmt
openupm add com.unity-atoms.unity-atoms-ui
openupm add com.unity-atoms.unity-atoms-input-system
```## Documentation
The Unity Atoms docs are now published at **https://unity-atoms.github.io/unity-atoms**.
### Blog posts
- [Unity Atoms — Tiny modular pieces utilizing the power of Scriptable Objects](https://medium.com/@adamramberg/unity-atoms-tiny-modular-pieces-utilizing-the-power-of-scriptable-objects-e8add1b95201)
- [Announcing Unity Atoms v2](https://medium.com/@adamramberg/announcing-unity-atoms-v2-1719ef3e587e)
- [Unity Atoms v4 is out!](https://medium.com/@adamramberg/unity-atoms-v4-is-out-b15a37da49da)## 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.
## Looking for support?
For questions and support please join our [Discord channel](https://discord.gg/W4yd7E7).
## Maintainers
- [AdamRamberg](https://github.com/AdamRamberg)
- [soraphis](https://github.com/soraphis)
- [miikalo](https://github.com/miikalo)
- [ThimoDEV](https://github.com/ThimoDEV)We are looking for more people to join the team! Contact us if you want to jump aboard.