Initial commit
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user