Files
BracerLib/Assets/Scripts/DI/DependencyContext.cs
T
2026-06-02 18:57:47 -04:00

29 lines
720 B
C#

using UnityEngine;
namespace BracerLib.DI
{
[DefaultExecutionOrder(-1)]
public abstract class DependencyContext : MonoBehaviour
{
private DependencyProvider dependencyProvider;
protected readonly DependencyCollection dependencyCollection = new();
protected abstract void Setup();
protected abstract void Configure();
private void Awake()
{
Setup();
dependencyProvider = new DependencyProvider(dependencyCollection);
var children = GetComponentsInChildren<MonoBehaviour>(true);
foreach (var child in children)
dependencyProvider.Inject(child);
Configure();
}
}
}