private IEnumerator LoadResourceEnumerator(Func <GameObject, Component> getTarget, byte?initialPopulateOverride) { if (IsResourceLoaded) { yield break; } var operation = targetReference.LoadAssetAsync <GameObject>(); yield return(operation); if (operation.Status != AsyncOperationStatus.Succeeded) { Debug.LogErrorFormat(this, $"Failed to load {targetReference}."); yield break; } Pool = GetPool(getTarget(operation.Result)); if (initialPopulateOverride.HasValue) { Pool.AddToPool(initialPopulateOverride.Value); } else if (initialPopulate > 0) { Pool.AddToPool(initialPopulate); } }
private IEnumerator LoadResourceEnumerator(Func <GameObject, Component> getTarget, byte?initialPopulateOverride) { if (IsResourceLoaded) { yield break; } var resourceRequest = Resources.LoadAsync <GameObject>(address); yield return(resourceRequest); Pool = GetPool(getTarget((GameObject)resourceRequest.asset)); if (initialPopulateOverride.HasValue) { Pool.AddToPool(initialPopulateOverride.Value); } else if (initialPopulate > 0) { Pool.AddToPool(initialPopulate); } }
public override void LoadResource(Func <GameObject, Component> getTarget = null, byte?initialPopulateOverride = null) { if (IsResourceLoaded) { return; } if (getTarget == null) { getTarget = go => go.transform; } Pool = GetPool(getTarget(targetPrefab)); if (initialPopulateOverride.HasValue) { Pool.AddToPool(initialPopulateOverride.Value); } else if (initialPopulate > 0) { Pool.AddToPool(initialPopulate); } }