29 lines
720 B
C#
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();
|
|
}
|
|
}
|
|
}
|