Skip to content

⚛️ Tiny modular pieces utilizing the power of Scriptable Objects

License

Notifications You must be signed in to change notification settings

sampaiodias/unity-atoms

 
 

Repository files navigation

⚛️ 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-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 article on Medium for a great introduction to Unity Atoms.

Maintainers

We are looking for more people to join the team! Contact us if you want to jump aboard.

About

⚛️ Tiny modular pieces utilizing the power of Scriptable Objects

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 92.7%
  • JavaScript 7.0%
  • Other 0.3%