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(true); foreach (var child in children) dependencyProvider.Inject(child); Configure(); } } }