Modular Architecture V1.0.0
Loading...
Searching...
No Matches
Modular Architecture - Home

Overview

Modular architecture is a small Unity package designed to provide structured re-usable data-driven pieces of code that can be used and expanded upon in your own Unity projects. Unity's codebase is inherently quite tightly coupled with the reign of Mono Behaviour and whilst it works and the workflow is very simple it has shortcomings. Throughout the years more and more Unity developers have been finding success with encorporating more modular and composite based designs into their Unity work-flows.

Some Excellent Resources and the inspiration behind this package :

The Benefits to Modularity In Unity

  • Fewer dependencies — MonoBehaviour‑heavy setups often create tangled scene references; modular systems stay clean and isolated
  • Safer iteration — swapping or updating modules (input, UI, audio, etc.) won’t impact unrelated features
  • Easier testing — data‑driven modules avoid scene‑reset issues and reduce dependency headaches
  • Better organization — Unity’s asset workflow pairs naturally with ScriptableObjects and persistent data
  • Memory efficiency — multiple objects can read from a single data asset, avoiding unnecessary duplication

Features

  • Create-able data assets for IComparable Data Types
  • Modular data game event system
  • Modular data conditions system ( return a operator b )
  • Extendable Enums (Cory Koseck) and Extendable Enum Data Sets
  • Custom property drawers
  • Samples and Demos

Package Structure

I created this package from the base of an earlier project I had made called PackageTemplate which can be found at : https://github.com/RyanEllisDale/PackageTemplate in both of these packages I have attempted to follow the established Unity and community standards. The resources I used for my packaging layout and code standards can be found at :

The changelog follows Unity and Keep a ChangeLog conventions which can be found at :

Throughout the whole project, Semantic versioning is used, and a generally consistent Markdown styling is kept, A guide to both can be found at :

Documentation

The documentation for this package is generated using Doxygen, styled with the doxygen‑awesome theme, and built directly from the XML comments within the codebase. This ensures that the documentation stays accurate, up‑to‑date, and closely aligned with the implementation. It also allows contributors to improve the docs simply by enhancing the inline comments in the source files. If you find any errors in the codebase feel free to toy around as much as you want and send me your findings, I'd love to hear from you.

Thank You For Reading

Suggested Readings

How to install the package

How to use the package

Credits

Third Party Notices

Licensing