Service Locator: Inversion of Control in Unity C#

Опубликовано: 03 Декабрь 2023
на канале: git-amend
11,146
443

Often considered an anti-pattern, the Service Locator offers a unique approach to managing dependencies in software design, particularly within the context of game development in Unity. This video dives into the construction of a Service Locator, demonstrating how it can operate efficiently across different scopes – at the level of individual game objects, entire scenes, and globally across the entire application. We will explore its relationship with principles like Dependency Inversion / Inversion of Control.

By the end of this tutorial, you’ll understand how to implement a Service Locator that efficiently manages service lifecycles and dependencies, providing a centralized point for service lookup without tightly coupling objects to their dependencies. Whether you're building a small indie game or a large-scale project, this guide will illuminate how a Service Locator can provide a flexible alternative to other dependency management strategies.

🔔 Subscribe for more Unity Tutorials    / @git-amend  

#unity3d #gamedev #indiedev

▬ Contents of this video ▬▬▬▬▬▬▬▬▬▬

0:00 Overview
02:40 Service Manager
04:36 Service Locator
13:25 Using a Service Locator

Source code: https://github.com/adammyhre/Unity-Se...

Assets Shown In This Video (Affiliate Links)
Dungeon Mason Tiny Hero Duo: (FREE): https://assetstore.unity.com/packages...
Chromisu: Handpainted Forest MEGA Pack https://assetstore.unity.com/packages...
SineVFX: Better Crystals https://assetstore.unity.com/packages...
VFX Trees: https://assetstore.unity.com/packages...
Kronnect Beautify: https://assetstore.unity.com/packages...
Dice Creator Pack: https://assetstore.unity.com/packages...
Toony Colors Pro 2: https://assetstore.unity.com/packages...
Gabriel Aguiar VFX: https://assetstore.unity.com/packages...
REXARD SpellBook Icons Megapack: https://assetstore.unity.com/packages...
ARCEY Vampire Skill Icons: https://assetstore.unity.com/packages...

Follow me!
https://linktr.ee/gitamend