[go: nahoru, domu]

Skip to content

jdharrison/fuse

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

Dependency Injection Framework for Unity

Table of Contents
  1. About The Project
  2. Usage
  3. Contributing
  4. License
  5. Contact

About The Project

FUSE is a framework for the Unity engine aimed at abstracting away the functionality you need on every single project. Whether it's an application, XR, or a game, it's meant to be light-weight and flexible to allow for usage on any possible projects.

It's architectural aim is to inverse control of development to provide structured access that sets you up for success, and scalability. After using Unity for 7+ years, this consolidates the core features needed on every project while exposing streamlined configuration.

Existing feature set:

  • Provides full GUI management of all core features you'd need, with most requiring no code to configure
  • Implements a fully customizable injection layer leveraging metadata (attributes) that abstracts away heaps of functionality
  • An optional application layer of logic which provides global availability of systems that run independent of any scene
  • State machine that manages all resources (scenes, bundles, logic) that is controlled via a simple Events or via injection
  • Interface for managing all resources needed that automatically packages all of your bundles, and scenes in a scalable manner for either baked or online access
  • Advanced build and asset pipeline that allows for more control which already comes UCB and automation ready
  • Full environment management to abstract away all those pesky staging dependent URLs/settings (e.g. prod vs dev)
  • Deeply documented internally with a 20+ page manual included to explain everything you'll need

Lastly, a distinct feature of the framework is that it provides easy access to all features without pushing you into any specific pattern. This makes it useful for acting as a framework container with Unity, allowing users to define their own architectural patterns that fit their needs.

(back to top)

Usage

FUSE can be installed either via Unity's package manager with the URL of this repository (recommended). Optionally, you can download the source code then copying the Plugins/FUSE folder into your project.

Once the framework has been added to the project, on first time installation the project will automatically bootstrap and welcome you with instructions on how to get started.

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/amazing-feature)
  3. Commit your Changes (git commit -m 'Add some amazing feature')
  4. Push to the Branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.md for more information.

(back to top)

Contact

Jacob D. Harrison - this@jacobdharrison.com
Project Link: https://github.com/jdharrison/fuse

(back to top)