Go to file
2019-10-04 01:37:30 +02:00
docs Add website for documentation 2019-10-04 01:37:30 +02:00
Examples New simpler / better icon system 2019-10-02 17:21:27 +02:00
Packages Add website for documentation 2019-10-04 01:37:30 +02:00
website Add website for documentation 2019-10-04 01:37:30 +02:00
.dockerignore Add website for documentation 2019-10-04 01:37:30 +02:00
.editorconfig Added new line before open braces to editorconfig 2019-04-07 17:59:10 +02:00
.gitattributes Added .gitattributes file 2019-04-07 11:56:55 +02:00
.gitignore Add website for documentation 2019-10-04 01:37:30 +02:00
CHANGELOG.md Minor change in changelog 2019-10-03 21:42:00 +02:00
CHANGELOG.md.meta Add missing meta + adjust package.json 2019-10-03 17:51:16 +02:00
CONTRIBUTING.md Break out the contributing part of the README 2019-04-11 09:44:07 +02:00
CONTRIBUTING.md.meta Add missing meta + adjust package.json 2019-10-03 17:51:16 +02:00
docker-compose.yml Add website for documentation 2019-10-04 01:37:30 +02:00
Dockerfile Add website for documentation 2019-10-04 01:37:30 +02:00
LICENSE.md New repo structure 2019-10-01 17:27:22 +02:00
LICENSE.md.meta Add missing meta + adjust package.json 2019-10-03 17:51:16 +02:00
omnisharp.json Squashed commit of the following: 2019-03-17 23:43:20 +01:00
omnisharp.json.meta Squashed commit of the following: 2019-03-17 23:43:20 +01:00
package.json Add missing meta + adjust package.json 2019-10-03 17:51:16 +02:00
package.json.meta Squashed commit of the following: 2019-03-17 23:43:20 +01:00
Packages.meta Add missing meta + adjust package.json 2019-10-03 17:51:16 +02:00
README.md Improve docs - setup basic structure 2019-10-03 23:05:26 +02:00
README.md.meta Squashed commit of the following: 2019-03-17 23:43:20 +01:00

⚛️ 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.