Skip to content

unity-atoms/unity-atoms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

527 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚛️ Unity Atoms

Scriptable Object Architecture


Tiny modular pieces utilizing the power of Scriptable Objects
Inspired of Ryan Hipple's talk from Unite 2017 this project features a set of tiny composible "Atoms" that improve modularity in your project.

MotivationInstallationDocumentationDiscordAknowlegements

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

... more in our Documentation

Installation

Requirements

  • Unity 2022.2+

Github Link

In the Package manager window, add a package via git url:

    Core: https://github.com/unity-atoms/unity-atoms.git?path=/Packages/Core#v4.6.1
    Base Atoms: https://github.com/unity-atoms/unity-atoms.git?path=/Packages/BaseAtoms#v4.6.1

for additional packages, just adjust the path

NPM

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.6.1",
        "com.unity-atoms.unity-atoms-base-atoms": "4.6.1",
        "com.unity-atoms.unity-atoms-fsm": "4.6.1",
        "com.unity-atoms.unity-atoms-mobile": "4.6.1",
        "com.unity-atoms.unity-atoms-mono-hooks": "4.6.1",
        "com.unity-atoms.unity-atoms-tags": "4.6.1",
        "com.unity-atoms.unity-atoms-scene-mgmt": "4.6.1",
        "com.unity-atoms.unity-atoms-ui": 4.6.1",
	    "com.unity-atoms.unity-atoms-input-system": "4.6.1",
        ...
    }
}

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

openupm openupm openupm openupm openupm openupm openupm openupm openupm

The package is available on the openupm registry. It's recommended to install it via 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

Blog posts

Aknowlegements

Maintainers

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

Influences

About

⚛️ Tiny modular pieces utilizing the power of Scriptable Objects

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages