IoC solutions for Unity

This post is just a list of Inversion-of-Control/Dependency Injection solutions for Unity3D for anyone looking to compare. I can’t at this time validate how good any of them are (well, with the obvious exception).

This is a living list. If you know of any I’ve missed, please let me know.

StangeIoC

Strange is the open-source IoC framework I built and which is the main focus of this blog. It borrows heavily from previous OS projects Robotlegs and SwiftSuspenders.

http://strangeioc.github.io/strangeioc/

Robotlegs for C#

The Actionscript version of Robotlegs was foundational for StrangeIoC. In 2015, our friend prankard ported the framework to C#. Unsurprisingly, the framework will look very familiar to our user base.

https://github.com/robotlegs-sharp/robotlegs-sharp-framework/

Stiletto

A .NET port of Dagger, the lightweight Android dependency injector from Square.

https://github.com/paulcbetts/stiletto

Zenject

Zenject, like StrangeIoC, is an OS project with a focus on helping Unity developers write large, flexible code bases.

https://github.com/modesttree/Zenject

Sebastiano Mandalà

Sebastiano developed some early ideas on Injection containers for Unity. His work was inspirational for many projects that followed, Including StrangeIoC and Zenject.

http://blog.sebaslab.com/ioc-container-for-unity3d-part-1/

http://blog.sebaslab.com/ioc-container-for-unity3d-part-2/

Simple Injection by Kasper Mindra

http://blogs.unity3d.com/2014/05/07/dependency-injection-and-abstractions/

Simple IoC Container for Unity3d

http://www.codeproject.com/Articles/774606/Simple-IoC-Container-for-Unity-d

uFrame

uFrame is a paid MVVM framework available from the asset store.

http://invertgamestudios.com/home

Uniject

Uniject is an Open Source DI project with a heavy emphasis on creating/promoting testable code. Note that as of this writing this project has been dormant for 2 years.

https://github.com/banderous/Uniject

Inconspicious Framework

Inspired by Strange, the developer tells me. The main difference/selling point is integration with UniRx for type-safe commands/signals.

https://github.com/yuhe00/Inconspicuous.Framework

Advertisements