Description

This course is dedicated to Zenject – a freeopen-source dependency injection framework designed for Unity.This course is updated for Zenject Version 6.1.1. Zenject is constantly updated by its creator, and Ill try to update the course content as soon as functionality is added or modified.Before we dig into the dependency injection, I’ll show that you can use Zenject without deep understanding of its mechanics – it is so easy!Next, I’ll continue with the detailed explanation of the dependency injection pattern in the Dependency Injections basics section. What, Why and How – those questionswill be answered in this section.Injecting MonoBehaviour classes section explains how to properly setup Unity scene using Zenject components, and shows some basic bindings examples. The Bindings section deeply coversthe functionality that makes Zenject so flexible and powerful, allowing its users to createinjections of any complexity.Adding non-MonoBehaviour classes to the Unity lifecycle section explains how integrate non-MonoBehaviour classes into Unity Game Loop, giving them the ability to use Start, Update and OnDestroy-like methods in such classes. In the Container section, I’ll show some additional DiContainer methods that might become useful. We’ll also coverZenject order of operations, which will help you to avoid (or at least easily debug) Zenject exceptions.Refactoring: Removing other patterns section compares Dependency Injection, Singleton and Service Locator patterns, and demonstrates a painless way to refactor them. In the Factory section, you will learn how to create and inject MonoBehaviour objects dynamically with a little help from the Factory classNext, I’ll show you how the manage and reuse created objects using Memory Pools, which can be especially useful for a mobile device game. Zenject also allows grouping bound objects, combining the Facade pattern with the Subcontainer functionality. Will cover this topics in details in the Subcontainer section.In the Dealing with multiple scenes section you will learn how to pass dependencies from one scene to another and use dependency injection in conjunction with Unity multi-scene editing feature.This course also covers Signals, an implementation of the Observer pattern. In theBuilding an Event System section, I’ll show you an example of a custom made event system and then compare it to the functionality provided by Zenject.Finally, in the Unit and Integration Testingsection, I’ll show you how Zenject simplifiesunit and integration test creationwith its helper classes andMOQ library support.