protected void UpdateChildDataBundle(SpawnedInjector spawnedInjector, DataBundle newDataBundle)
    {
        if (newDataBundle != spawnedInjector.dataBundle)
        {
            if (logUpdates)
            {
                Debug.Log("DataInjectorCollection: Updating child DataBundle: " + spawnedInjector.dataBundle.id, this);
            }

            spawnedInjector.dataBundle = newDataBundle;
            spawnedInjector.injector?.Inject(spawnedInjector.dataBundle);
        }
    }
    private void UpdateCurrentChildren()
    {
        int i = 0;

        foreach (DataBundle dataBundle in dataBundleCollection.Value.dataBundles)
        {
            SpawnedInjector spawnedInjector = GetSpawnedInjector(dataBundle);

            UpdateChildDataBundle(spawnedInjector, dataBundle);
            UpdateChildSiblingIndex(spawnedInjector, i);
            i++;
        }
    }
    private void RemoveChild(SpawnedInjector spawnedInjector)
    {
        if (logUpdates)
        {
            Debug.Log("DataInjectorCollection: Removing child: " + spawnedInjector.injector, this);
        }

        if (enableObjectPooling)
        {
            DisposeChildToPool(spawnedInjector.injector);
        }
        else
        {
            spawnedInjector.injector?.DisposeAndDestroy();
        }

        spawnedChildren.Remove(spawnedInjector);
    }
 private void UpdateChildSiblingIndex(SpawnedInjector spawnedInjector, int siblingIndex)
 {
     spawnedInjector.injector.transform.SetSiblingIndex(siblingIndex);
 }