A dependency injection container
- Open the Unity Package Manager
- Click the + button
- Select "Add package from git URL..."
- Paste the following URL
https://github.com/DreamTapir/UnityContainer.git?path=Packages/UnityContainer
- Place a SceneContainer Prefab in the scene
 
- Assign the [Inject] attribute to the Field or Method want to inject in the MonoBehaviour class
  public class ExampleClass : MonoBehaviour
  {
      [Inject]
      private IIntProvider _intProvider;
      private IFloatProvider _floatProvider;
      private IColorProvider _colorProvider;
      [Inject]
      public void Inject(List<IFloatProvider> floatProviders, IEnumerable<IColorProvider> colorProviders)
      {
          _floatProvider = floatProviders.Where(f => f.Value > 0).FirstOrDefault();
          _colorProvider = colorProviders.Where(c => c.Color.g == 1f).FirstOrDefault();
      }
  }