Companies Home Search Profile

Dependency Injection in Unity3D using Zenject

Focused View

Stepan Diadorov

2:10:59

10 View
  • 1. Welcome to the course!.mp4
    00:43
  • 2. What should you know before starting the course.mp4
    00:52
  • 3. Dont hesitate to ask!.mp4
    00:33
  • 4.1 Zenject Github page.html
  • 4. 3 ways to install Zenject.mp4
    00:41
  • 5. Without any introduction Lets use Zenject!.mp4
    01:45
  • 6.1 Zenject Course Script (Public).pdf
  • 6. Zenject Course Script (Public).html
  • 1. Introduction to the Dependency Injection basics.mp4
    00:23
  • 2.1 What is a Dependency Injection.pdf
  • 2. What is a Dependency Injection.mp4
    01:08
  • 3.1 Why do we need Dependency Injection.pdf
  • 3. Why do we need Dependency Injection.mp4
    03:11
  • 4.1 Object Graph.pdf
  • 4. Object Graph.mp4
    02:03
  • 5.1 Constructor, Method, Field and Property injection.pdf
  • 5. Constructor, Method, Field and Property injection.mp4
    01:53
  • 1. Injecting MonoBehaviour class with Zenject Bindings.mp4
    01:38
  • 2.1 Basic Bindings using Containers.pdf
  • 2. Basic Bindings using Containers.mp4
    02:27
  • 3.1 Installers.pdf
  • 3. Installers.mp4
    03:35
  • 4. Reusing Installers.mp4
    01:35
  • 5. Context classes.mp4
    03:09
  • 6. Validating the scene injections.mp4
    00:56
  • 7. Injecting into a PlayerPrefab using Zenject Auto Injecter.mp4
    00:47
  • 1. Introduction to Binding.mp4
    00:33
  • 2.1 ContractType and ResultType.pdf
  • 2. ContractType and ResultType.mp4
    01:33
  • 3.1 Construction Method for non-MonoBehaviour classes.pdf
  • 3. Construction Method for non-MonoBehaviour classes.mp4
    01:50
  • 4.1 WithArguments method.pdf
  • 4. WithArguments method.mp4
    00:36
  • 5.1 Construction Method for MonoBehaviour classes.pdf
  • 5. Construction Method for MonoBehaviour classes.mp4
    05:44
  • 6.1 Game Object Bind Methods.pdf
  • 6. Game Object Bind Methods.mp4
    01:00
  • 7.1 Lazily Created Objects.pdf
  • 7. Lazily created objects.mp4
    00:41
  • 8.1 Scope AsTransient vs AsSingle vs AsCached.pdf
  • 8. Scope AsTransient vs AsSingle vs AsCached.mp4
    01:37
  • 9.1 Inject by Id.pdf
  • 9. Inject by Id.mp4
    01:06
  • 10.1 Conditional Bindings using InjectContext.pdf
  • 10. Conditional Bindings using InjectContext.mp4
    03:03
  • 11.1 Challenge - Conditional Bindings.pdf
  • 11. Challenge Conditional Bindings.mp4
    00:37
  • 12.1 Optional Binding.pdf
  • 12. Optional Binding.mp4
    00:40
  • 13.1 Back to the Zenject Binding.pdf
  • 13. Back to the Zenject Binding.mp4
    00:42
  • 14.1 Convention Based Binding.pdf
  • 14. Convention Based Binding.mp4
    02:14
  • 15.1 Challenge - Convention Based Binding.pdf
  • 15. Challenge Convention Based Binding.mp4
    00:41
  • 16.1 Unbind and Rebind.pdf
  • 16. Unbind and Rebind.mp4
    00:32
  • 1. ITickable, IInitializable, IDisposable.mp4
    01:46
  • 2.1 Update Initialization Order.pdf
  • 2. Update Initialization Order.mp4
    00:59
  • 3.1 Do not create IInitializable, ITickable and IDisposable objects dynamically.pdf
  • 3. Do not create IInitializable, ITickable and IDisposable objects dynamically!.mp4
    00:54
  • 1. Introduction.mp4
    00:19
  • 2.1 Object instantiation using Container.pdf
  • 2. Object instantiation using container.mp4
    01:51
  • 3.1 Passing Extra Arguments.pdf
  • 3. Passing Extra Arguments.mp4
    00:40
  • 4.1 Inject and QueueForInject.pdf
  • 4. Inject and QueueForInject.mp4
    01:12
  • 5.1 Resolve.pdf
  • 5. Resolve.mp4
    01:59
  • 6.1 Zenject Order Of Operations.pdf
  • 6. Zenject Order Of Operations.mp4
    03:00
  • 1. Introduction.mp4
    00:18
  • 2.1 Singleton and Service Locator in Unity.pdf
  • 2. Singleton and Service Locator in Unity.mp4
    00:49
  • 3. Is Singleton bad.mp4
    01:58
  • 4. Is Service Locator bad.mp4
    01:34
  • 5. Configuring Singletons using Project Context.mp4
    01:18
  • 1. Why not simply use Instantiate.mp4
    00:40
  • 2. Factory Pattern using Zenject.mp4
    01:36
  • 3.1 Abstract Factory.pdf
  • 3. Abstract Factory.mp4
    00:45
  • 4. Passing parameters to the factory.mp4
    02:03
  • 5.1 Custom Factory.pdf
  • 5. Custom Factory.mp4
    02:10
  • 6.1 Validating a custom factory.pdf
  • 6. Validating a custom factory.mp4
    00:23
  • 7.1 Custom Factory Interface.pdf
  • 7. Custom Factory Interface.mp4
    00:51
  • 1. Why using memory pools.mp4
    00:52
  • 2.1 Resetting objects.pdf
  • 2. Resetting objects.mp4
    01:32
  • 3.1 Resetting MonoBehaviour objects using MonoMemoryPool.pdf
  • 3. Resetting MonoBehaviour objects using MonoMemoryPool.mp4
    00:52
  • 4.1 Syntax.pdf
  • 4. Syntax.mp4
    01:20
  • 5.1 Passing parameters to the memory pool.pdf
  • 5. Passing parameters to the memory pool.mp4
    00:47
  • 6.1 Using memory pool in the client code.pdf
  • 6. Using memory pool in the client code.mp4
    01:32
  • 7.1 Abstract Memory Pools.pdf
  • 7. Abstract Memory Pools.mp4
    00:23
  • 8.1 Instantiating Memory Pools Directly.pdf
  • 8. Instantiating Memory Pools Directly.mp4
    01:00
  • 1. Introduction.mp4
    00:16
  • 2. Facade pattern.mp4
    01:25
  • 3.1 Creating a SubContainer from the code.pdf
  • 3. Creating a container from the code.mp4
    01:01
  • 4.1 Construction Method using SubСontainers.pdf
  • 4. Construction Method using SubContainers.mp4
    01:47
  • 5. GameObjectContext.mp4
    01:37
  • 6. Creating GameObjectContext using a Factory.mp4
    01:34
  • 7.1 Using IInitializable ITickable IDisposable within SubContainers.pdf
  • 7. Using IInitializable ITickable IDisposable within SubContainers.mp4
    01:25
  • 1. Introduction.mp4
    00:29
  • 2.1 Injecting data across scenes using ZenjectSceneLoader.pdf
  • 2. Injecting data across scenes using ZenjectSceneLoader.mp4
    01:23
  • 3. Scene Parenting Using Contract Names.mp4
    01:10
  • 4. Scene Decorators.mp4
    01:18
  • 1. Introduction.mp4
    00:09
  • 2. Why using an event system.mp4
    01:37
  • 3. Event System By The Book.mp4
    01:02
  • 4. Zenject Signals (Version 5.5.1).mp4
    01:19
  • 5.1 Signal Bindings.pdf
  • 5. Signal Bindings.mp4
    01:01
  • 6.1 Additional Declaration methods.pdf
  • 6. Additional Declaration methods.mp4
    00:35
  • 1. Introduction.mp4
    00:22
  • 2. Why do we need unit testing and integration testing.mp4
    02:08
  • 3. Unit Testing with ZenjectUnitTestFixture class.mp4
    01:28
  • 4.1 MOQ Github page.html
  • 4. MOQ Installation and usage.mp4
    03:51
  • 1.1 Version 6.1.1 - Breaking Changes first!.pdf
  • 1. Version 6.1.1 - Breaking Changes first!.mp4
    02:30
  • 2.1 Zenject Settings.pdf
  • 2. Zenject Settings.mp4
    02:15
  • 3.1 Signals Redesigned.pdf
  • 3. Signals Redesigned.mp4
    03:40
  • 4.1 Just-In-Time Resolving Using LazyInject.pdf
  • 4. Just-In-Time Resolving Using LazyInject.mp4
    00:40
  • 5.1 Decorator pattern in Zenject.pdf
  • 5. Decorator pattern in Zenject.mp4
    03:23
  • 6.1 Memory Pools.pdf
  • 6. Memory Pools.mp4
    04:39
  • 1. Congratulations!.mp4
    00:11
  • 2.1 Ben Tristem.html
  • 2.2 GameDev.tv.html
  • 2. BONUS LECTURE.mp4
    00:53
  • Description


    Learn Zenject - a powerful, free, open-source, constantly updating dependency injection framework designed for Unity3d.

    What You'll Learn?


    • Refactor existing and build new Unity projects using the Zenject Framework
    • Create loosly coupled connections using Zenject Signals
    • Increate mobile game performance by using the Memory Pool classes provided by Zenject
    • Create unit tests with Zenject and MOQ

    Who is this for?


  • Unity developers that want to refactor their existing projects or create new projects using Dependency Injection
  • Unity enthusiasts who want to learn the Dependency Injection pattern to use it in the game development.
  • What You Need to Know?


  • Students should be familiar with Unity basics
  • Intermediate C# programming experience is required
  • Design Patterns knowledge is a plus, but not mandatory
  • More details


    Description

    This course is dedicated to Zenject - a free open-source dependency injection framework designed for Unity.

    This course is updated for Zenject Version 6.1.1. Zenject is constantly updated by it’s creator, and I’ll 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 questions will 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 covers the functionality that makes Zenject so flexible and powerful, allowing its users to create injections 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 cover Zenject 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 class

    Next, 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 the Building 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 Testing section, I'll show you how Zenject simplifies unit and integration test creation with its helper classes and MOQ library support.

    Who this course is for:

    • Unity developers that want to refactor their existing projects or create new projects using Dependency Injection
    • Unity enthusiasts who want to learn the Dependency Injection pattern to use it in the game development.

    User Reviews
    Rating
    0
    0
    0
    0
    0
    average 0
    Total votes0
    Focused display
    Stepan Diadorov
    Stepan Diadorov
    Instructor's Courses
    After I finished the Belarusian State University of Informatics and Radioelectronics in 2011, I've entered the IT world as a functional testing engineer. I've worked in several companies, learned Python, Java and C#, and changed my title to Test Automation Engineer. Video games have always been an important part of my life. One day, I've finally realized I have all resources and experience to create games. Ever since, I slowly absorb every aspect of the Unity game engine, creating games in my spare-time. I've encountered many impediments and spent dozens of hours debugging my code. Now I'm eager to share my knowledge, hoping my effort might help someone else.
    Students take courses primarily to improve job-related skills.Some courses generate credit toward technical certification. Udemy has made a special effort to attract corporate trainers seeking to create coursework for employees of their company.
    • language english
    • Training sessions 91
    • duration 2:10:59
    • Release Date 2024/01/31